存储对列表元素的引用是否安全?

Dav*_*own 2 c++ stl list

std::list只要该元素未从列表中删除,是否可以安全地存储对元素的引用?我从这个问题中看到,存储列表迭代器是安全的,但直接引用是一样的吗?

例如

list<int> mylist;
mylist.push_back(3);
int& myint = *mylist.begin();

// modfy mylist

cout << "myint: " << myint << endl;
Run Code Online (Sandbox Code Playgroud)

myint只要我不从列表中删除它,它将始终有效吗?

Jam*_*lis 7

std::list只要该元素未从列表中删除,是否可以安全地存储对元素的引用?

是.插入和擦除不会使a中元素的引用或迭代器无效std::list(当然,除去擦除元素的引用和迭代器不再有效).

  • 请添加参考。 (2认同)