c++ - 在容器中存储迭代器

标签 c++ stl iterator

我正在构建另一个应用程序将使用的 DLL。我想在从函数调用返回之前将某些数据的当前状态全局存储在 DLL 的内存中,以便我可以在下一次调用该函数时重用状态。

为此,我必须保存一些迭代器。我正在使用 std::stack 来存储所有其他数据,但我不确定我是否也可以使用迭代器来做到这一点。

将列表迭代器放在容器类中安全吗?如果没有,您能否建议一种方法来存储指向列表中元素的指针,以便我以后可以使用它?

我知道使用 vector 而不是列表来存储我的数据可以让我存储下标并非常容易地重用它,但不幸的是我只能使用 std::list。

最佳答案

仅当列表被销毁或“指向”元素从列表中删除时,列表的迭代器才会失效。

关于c++ - 在容器中存储迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137116/

相关文章:

c++ - PImpl 并不能使我免于导出 STL

python - 在文件中查找彼此相反的单词

c++ - GetOverlappedResult() 在运行时崩溃,但在从 VC++ 2010 进行调试时不会崩溃

c++ - 带有 gcc 和 windres 的版本信息 .EXE

c++ - 收集不同类型的类并在 C++ 中调用它们的方法

c# - 有什么方法可以在生成的迭代器 block 中获取对 "this"的引用?

java - 一次迭代 4 个 HashMap 的键、值

c++ - 向后打印列表

c++ - g++ 排序函数警告

c++ - 为什么 std::priority_queue 使用最大堆而不是最小堆?