只使用vector的erase函数,记住,该函数是迭代器失效,返回下一个迭代器
#include <iostream>
#include <vector>
using namespace std;
//删除值为8的元素
int main()
{
vector<int> arr;
arr.push_back(6);
arr.push_back(7);
arr.push_back(8);
arr.push_back(9);
for(vector<int>::iterator it=arr.begin(); it!=arr.end(); )//注意这里没有it++,如果有,则*it==8时,it指向之后的第二个元素。
{
if(* it == 8)
{
it = arr.erase(it); //不能写成arr.erase(it);erase()返回指向下一个元素的新的迭代器。
}
else
{
++it;
}
}
return 0;
}