#include<iostream>
#include<vector>
using namespace std;
int main(void)
{
vector<int> array;
array.push_back(100);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(300);
array.push_back(500);
vector<int>::iterator itor;
for (itor=array.begin();itor!=array.end();itor++;)
{
if (*itor==300)
{
itor=array.erase(itor);
}
}
print(array);
return 0;
}
void print(vector<int> v)
{
cout<<"\nvector size is: "<<v.size()<<endl;
}
如果这时删除一个元素之后,itor已经指向下一个元素,所以再调用itor++,那么连续的2个300就只能删除前一个。