顺序遍历vector时的情景:
逆序遍历的情景:
using namespace std;
int a[] = { 1,2,3,4,4,4,4,4,4,5,6,6,6,6,7,8,9,9,4,34,3,4,5,6,23,4,56,6 };
int main()
{
vector<int > vec(a, a+ sizeof(a) / sizeof(a[0]));
for (int i = vec.size()-1; i >=0; i--)
{
if (vec[i] == 4)
{
vec.erase(vec.begin()+i);
}
}
for (int i = 0; i < vec.size(); i++)
{
cout << vec[i] << endl;
}
cin.get();
}
1
2
3
5
6
6
6
6
7
8
9
9
34
3
5
6
23
56
6
请按任意键继续. . .
遍历变长容器的时候逆序遍历即可.... 当然 stl里面有更好的方法去实现这种遍历删除 remove_if unique...,这里仅仅是自己遇到的问题随手一写加深下印象,
当然顺序遍历也是可以的.. 只需要在找到元素删除元素之后 i-- 也可以实现一样的效果,