如果我通过指针获取对 std::list 中元素的引用,只要该元素未被删除,该指针是否会保持有效,还是每次我想访问所述元素时都必须遍历列表?
基本上,当添加或删除其他元素时,std::list 会移动元素吗?
我怀疑不是...
如果我通过指针获取对 std::list 中元素的引用,只要该元素未被删除,该指针是否会保持有效,还是每次我想访问所述元素时都必须遍历列表?
基本上,当添加或删除其他元素时,std::list 会移动元素吗?
我怀疑不是...
对 a 中元素的引用以及扩展指针在std::list
大多数操作中都保持有效,但从容器中删除除外。事实上,它们甚至可以通过合并、拼接和交换成员函数移动到另一个列表,并且它们仍然有效。
根据C++参考,该insert()
方法对迭代器的有效性没有影响,该remove
方法只影响被移除元素的迭代器的有效性。我怀疑您想保留指向列表中元素的迭代器,而不是指针。