【问题标题】:c++: Behavior of push_back() and back() with pointersc++:push_back() 和 back() 的行为与指针
【发布时间】:2016-10-31 11:24:01
【问题描述】:

我有两个 C++ 列表,std::list<T> List1std::list<T*> List2;。现在,我想多次执行以下操作:

List1.push_back(new_object);
List2.push_back(&List1.back());

我的问题:List2 中的引用在每一步之后是否保持有效?即:List2 中的第一个元素是否仍指 List1 等中的第一个元素?

【问题讨论】:

  • 不要用英语解释 C++ 中什么更清楚。只需写std::list<T> List1;等。

标签: c++ list pointers


【解决方案1】:

是的,它仍然有效。 std::list 插入不会使迭代器(或在这种情况下指向内容的指针)无效。

【讨论】:

  • 大多数容器共享的属性,但重要的是不是std::vector<T>
  • @MSalters,我们必须为缓存友好迭代付出的代价。
  • 非常感谢您的回答!
猜你喜欢
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
相关资源
最近更新 更多