只要該元素沒有從列表中刪除,將參考存儲在std::list
中是否安全?我從this中看到存儲列表迭代器是安全的,但對於直接引用也是如此?存儲對列表元素的引用是否安全?
例如
list<int> mylist;
mylist.push_back(3);
int& myint = *mylist.begin();
// modfy mylist
cout << "myint: " << myint << endl;
將myint
始終是有效的,只要我不從列表中刪除嗎?
只要該元素沒有從列表中刪除,將參考存儲在std::list
中是否安全?我從this中看到存儲列表迭代器是安全的,但對於直接引用也是如此?存儲對列表元素的引用是否安全?
例如
list<int> mylist;
mylist.push_back(3);
int& myint = *mylist.begin();
// modfy mylist
cout << "myint: " << myint << endl;
將myint
始終是有效的,只要我不從列表中刪除嗎?
是的,它是安全的。元素不會移動,所以引用只會在與迭代器相同的情況下失效。
它編譯?我相信它應該是'int&myint = * mylist.begin()' – a1ex07 2011-04-13 01:58:49