2012-06-19 29 views
3

执行以下操作可否安全?安全地获取&std列表项目?

std::list<Something> someList; 

... 
someList.push_back(Something(8)); 
Something* something = &someList.back(); 

我认为这是安全的,但我不完全确定。

感谢

+0

即使这是有效的代码,如果您使用原始指针来引用C++中的事物,您可能需要考虑不同的机制,例如使用迭代器或引用。 – fluffy

回答

3

是,直到你从someList抹去它的对象将是有效的。请参阅Iterator Invalidation Rules以获取有关何时可以销毁各种容器操作的对象的信息。

+0

是的,几乎没有任何东西会使指针或对'list'元素的引用无效。 –