仅使用迭代器从列表中删除元素

Set*_*gie 7 c++ iterator list std

std::list如果只有指向要删除的元素的迭代器,是否可以从中删除元素?我有大量的函数需要迭代器来列出元素,并且必须将拥有权传递list给它们中的每一个都是非常不便的.

Nod*_*ode 3

编辑:

你不能使用单个迭代器。

如果您有开始/结束迭代器,则可以使用该std::remove算法将要删除的所有元素移动到末尾,并在稍后删除它们。

如果您不这样做,或者上述内容对于您当前的设计不可行,我建议您更改您的功能以采用std::pair<std::list<T>, std::list<T>::iterator>类似的方法。

  • 但它也需要清单。 (2认同)