1.vector
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void vectorTest()
{
vector<int> container;
for (int i = 0; i < 10; i++)
{
container.push_back(i);
}
vector<int>::iterator iter;
for (iter = container.begin(); iter != container.end(); iter++)//循环2
{
container.erase(iter);
}
for (iter = container.begin(); iter != container.end(); iter++)
{
cout<<*iter<<endl;
}
}
int main(int argc, const char *argv[])
{
vectorTest();
return 0;
}
执行结果 : 0 1 2 3 5 7 9
在vector中删除一个元素时,后面的元素会前移一位,所以原来的迭代器都失效了
删除第一个比3大的数4后:0 1 2 3 5 6 7 8 9
--->但是此时迭代器指向5,然后iter++,又指向6了,把5漏掉。。。导致的是后面有5 7 9依然没删除
修改的方法:在循环2中:
for