我正在构建另一个应用程序将使用的DLL.我想在从函数调用返回之前将一些数据的当前状态全局存储在DLL的内存中,这样我就可以在下次调用函数时重用state.
为此,我必须保存一些迭代器.我正在使用std :: stack存储所有其他数据,但我不确定是否可以使用迭代器来完成.
将列表迭代器放在容器类中是否安全?如果没有,你能建议一种方法来存储指向列表中元素的指针,以便我以后可以使用它吗?
我知道使用向量来存储我的数据而不是列表会允许我存储下标并非常容易地重用它,但不幸的是我只需要使用std :: list.
是的,它会正常工作.
由于这是一个特殊质量的列表迭代器,所以还有很多其他的答案,我必须指出它适用于任何迭代器,包括矢量迭代器.如果向量被修改,向量迭代器失效的事实与将迭代器存储在另一个容器中是否合法的问题几乎无关 - 它是.当然,如果你做任何使它失效的事情,迭代器就会失效,但这与迭代器是否存储在堆栈(或任何其他数据结构)中无关.
| 归档时间: |
|
| 查看次数: |
5774 次 |
| 最近记录: |