【发布时间】:2015-03-07 04:15:10
【问题描述】:
我正在尝试重置一个迭代器,因为它已被删除
while (vBegin != vEnd)
{
//some stuff;
vectorThing.erase(vbegin);
vbegin = vectorThing.begin();
vEnd = vectorThing.end();
}
这导致 vEnd 等于我刚刚删除的内容,我如何让它像以前一样指向最后?
【问题讨论】:
-
This causes vEnd to equal the thing I just deleted不,它没有。是什么让你产生了这个想法? -
我进入了一个调试器,它做到了
-
vbegin和vBegin之间的关系(如果有)是什么? -
@randomname 在遍历向量时,您是否有理由不使用
erase/remove_if习语而不是擦除? stackoverflow.com/questions/347441/… -
This seems to work,也许你应该给我们看看真正的代码。