https://blog.csdn.net/vbanglev/article/details/1512521
介绍remove和erase的配合
remove返回新end的下一个,配合erase真正的删掉
用erase删除连续的几个重复值
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
vec.push_back(100);
vec.push_back(300);
vec.push_back(300);
vec.push_back(300);
vec.push_back(300);
vec.push_back(500);
cout<<&vec<<endl;
vector<int>::iterator itor;
for(itor=vec.begin();itor!=vec.end();)
{
if(*itor==300)
{
itor=vec.erase(itor);
}
else itor++;
}
for(itor=vec.begin();itor!=vec.end();itor++)
{
cout<<*itor<<" ";
}
system("pause");
return 0;
}
//每次循环迭代器就会+1,也就是删了一个300,后面的300到了刚删除的位置,然后迭代器移动跳过了一个300,所以只删除了2个300.Do you understand?