c ++:带指针的push_back()和back()的行为

Ric*_*ard 5 c++ pointers list

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

List1.push_back(new_object);
List2.push_back(&List1.back());
Run Code Online (Sandbox Code Playgroud)

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

Sto*_*ica 9

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

  • 大多数容器共享的属性,但重要的是**不是由`std :: vector <T>`. (3认同)