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只要我不从列表中删除它,它将始终有效吗?
std::list只要该元素未从列表中删除,是否可以安全地存储对元素的引用?
是.插入和擦除不会使a中元素的引用或迭代器无效std::list(当然,除去擦除元素的引用和迭代器不再有效).