在用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删除元素的常见问题
本文深入探讨了在使用C++的Vector容器删除特定元素时遇到的复杂情况,通过实例演示了错误的操作步骤及正确的实现方法,旨在帮助开发者避免常见的陷阱并高效地进行元素管理。
1226

被折叠的 条评论
为什么被折叠?



