如果您只有指向要删除的元素的迭代器,是否可以从 std::list
中删除元素?我有大量使用迭代器来列出元素的函数,如果必须将拥有的 list
传递给它们中的每一个元素,将会带来巨大的不便。
最佳答案
编辑:
您不能使用单个迭代器。
如果你有开始/结束迭代器,你可以使用 std::remove
算法将所有要删除的元素移动到末尾,并在稍后删除它们。
如果您不这样做,或者以上内容对于您当前的设计不可行,我建议您更改您的功能以采用 std::pair<std::list<T>, std::list<T>::iterator>
或类似的东西。
关于c++ - 从仅包含其迭代器的列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884835/