让我假设我有一个未排序的删除迭代器列表,定义为
std::vector<std::vector<int>::iterator> _unsortedIterList;
另一个定义为:
的向量std::vector<int> _listValues;
然后此代码将不起作用(因为擦除将使剩余的迭代器无效)。
for ( auto it: _unsortedIterList)
{
_listValues.erase(it);
}
有没有办法正确擦除所有迭代器?
答案 0 :(得分:4)
擦除使擦除点处或之后的迭代器无效。因此,您所要做的就是确保我们将其删除回原位:
float