STL 如何遍历list,将每个元素和其后的N个元素进行比较?

C++编程人员求解答,

自定义一个结构体 MyStruct,以及由该结构体组成的list

例如:

 MyStruct{
    int a;
    int b;
}
typedef list<MyStruct> Mylist;

当该list中插入有大量数据后,想进行过滤操作

过滤方式就是比较 a 或者 b的值,

比如:每一个元素a和之后的4个元素比较,a相差在5以内的,

则删除其后4个元素

继续遍历,直到末尾

以上需求要怎么做?小弟只知道怎么遍历

你用iterator遍历List链表,每次取一个iter,然后同时把后面的4个都取出来比较,iter+1, iter+2, iter+3, iter+4,如果符合你的条件,就erase进行删除。