1

如果我通过指针获取对 std::list 中元素的引用,只要该元素未被删除,该指针是否会保持有效,还是每次我想访问所述元素时都必须遍历列表?

基本上,当添加或删除其他元素时,std::list 会移动元素吗?

我怀疑不是...

4

2 回答 2

4

对 a 中元素的引用以及扩展指针在std::list大多数操作中都保持有效,但从容器中删除除外。事实上,它们甚至可以通过合并、拼接和交换成员函数移动到另一个列表,并且它们仍然有效。

于 2013-04-16T01:07:49.480 回答
3

根据C++参考,该insert()方法对迭代器的有效性没有影响,该remove方法只影响被移除元素的迭代器的有效性。我怀疑您想保留指向列表中元素的迭代器,而不是指针。

于 2013-04-16T01:00:00.897 回答