如果我通过指针在std :: list中获取对元素的引用,只要不删除该元素,该指针是否仍然有效,还是每次访问该元素时都必须遍历该列表?

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

我怀疑不是

===============>>#1 票数:4

std::list元素的引用(以及扩展)是通过大多数操作保持有效的,除非从容器中删除。 实际上,它们甚至可以通过merge,splice和swap成员函数移动到另一个列表,并且它们仍然保持有效。

===============>>#2 票数:3 已采纳

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

  ask by Cody Smith translate from so

未解决问题?本站智能推荐: