C++中Vector.erase()删除某一元素的正确用法

xiaoxiao2021-02-28  122

在用Vector删除某一个元素的时候经常互出现不可思议的情况,例如:

vector<int> count;

count{0,0,0,437,0,0,0};

想要删除count中的0元素,使用如下程序:

vector <int>::iterator Iter;

for (Iter=count.begin();Iter!=count.end();Iter++) {   if (*Iter==0)   {    count.erase(Iter);    Iter=count.begin();   } }

经过处理后,count中仍然有0元素,输出的值为0,437。具体的原因一时半会想不清楚,先记下正确的操作代码如下:

vector <int>::iterator Iter; for (Iter=count.begin();Iter!=count.end();) {   if (*Iter==0)   {    count.erase(Iter);    Iter=count.begin();   }   else   {       Iter++;   } }

转载请注明原文地址: https://www.6miu.com/read-35516.html

最新回复(0)