c++ - 从仅包含其迭代器的列表中删除元素

标签 c++ list iterator std

如果您只有指向要删除的元素的迭代器,是否可以从 std::list 中删除元素?我有大量使用迭代器来列出元素的函数,如果必须将拥有的 list 传递给它们中的每一个元素,将会带来巨大的不便。

最佳答案

编辑:

您不能使用单个迭代器。

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

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

关于c++ - 从仅包含其迭代器的列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884835/

相关文章:

python - 如何在 python 中的某些点将列表拆分为更小的列表?

java - java中特定集合的迭代器实现是适配器设计模式的一个例子吗?

C++ 如何重载一个函数,该函数将不同模板对象的迭代器作为参数?

scala - 如何在不使用可变变量的情况下在 Scala 中编写迭代器?

c++ - 函数中的 gdb 局部变量

c++ - 静态链接的非托管库和 C++ CLR

c++ - 如何在 .txt 文件中保存泰语

c++ - 在 Objective C++ .mm 文件中包含 POCO 头文件会导致 Xcode 6 出现编译错误

java - 在 Java 中将值附加到列表的元素

list - Scala 列表中的对象类型