使用迭代器列表删除向量中的元素?

时间:2017-12-14 18:14:20

标签: c++ c++11

让我假设我有一个未排序的删除迭代器列表,定义为

std::vector<std::vector<int>::iterator>  _unsortedIterList;

另一个定义为:

的向量
std::vector<int> _listValues;

然后此代码将不起作用(因为擦除将使剩余的迭代器无效)。

for ( auto it: _unsortedIterList)
{
   _listValues.erase(it);
}

有没有办法正确擦除所有迭代器?

1 个答案:

答案 0 :(得分:4)

擦除使擦除点处或之后的迭代器无效。因此,您所要做的就是确保我们将其删除回原位:

float