本文主要是介绍C++中Vector.erase()删除某一元素的正确用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在用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++;
}
}
这篇关于C++中Vector.erase()删除某一元素的正确用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!