知道遍历容器,在循环内部删除元素会导致问题,但用的时候却想不起来为什么会导致这样的问题,也不知道如何处理了。现在列于此。
对于 C++ 的容器,调用 earse 方法后,该方法返回下一个指向容器元素的迭代器,要将这个值重新赋值给迭代器变量。
for
(VectorType::iterator it = someVector.begin(); it != someVector.end();){ if
(*it== value) { it
= someVector.erase(it); } else { ++it; }}对于 Java 的容器,不能使用 for( : ) 遍历然后在里面用容器的 remove方法。正确的做法如下;
Iterator<int> it = CollectionType.getIterator();
while(it.hasnext())
{
if( 3 == (int) it))
it.remove();
}
1433

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



