vector::erase方法,返回值是更新后的容器的被删除元素的后一个元素的迭代器,如果需要指向删除元素的前面一个元素的迭代器就要-1
#include <vector>
#include <iostream>
int main()
{
using namespace std;
int a[10] = {1, 1, 2, 3, 4, 5, 5, 2, 1, 23};
vector<int> pts(a, a + 10);
vector<int>::iterator it;
int val = 1;//删除值为1的全部元素
for(it = pts.begin(); it != pts.end(); it++)
{
if(*it == val)
{
while(it == pts.begin() && *it == val)
{
it = pts.erase(it);
}
if(*it == val)
{
it = pts.erase(it) - 1;
}
}
}
//显示
for(int i = 0; i < pts.size(); i++)
cout<<pts[i]<<endl;
return 0;
}