存储STL列表迭代器的指针是否安全?

时间:2011-10-15 12:42:35

标签: c++ list stl iterator

我知道STL列表的任何插入或删除操作都不会使它们的迭代器失效。 但是,我不确定列表是否仍然保留迭代器本身。

那么,我可以存储列表迭代器的指针并在以后使用吗?

1 个答案:

答案 0 :(得分:3)

对于 std::list

如果插入
所有迭代器和引用不受影响[23.2.2.3/1]

如果删除
只有迭代器和对擦除元素的引用才会失效[23.2.2.3/3]

因此,只要您擦除元素并且不使用其存储的迭代器,它就是安全的。