3
执行以下操作可否安全?安全地获取&std列表项目?
std::list<Something> someList;
...
someList.push_back(Something(8));
Something* something = &someList.back();
我认为这是安全的,但我不完全确定。
感谢
执行以下操作可否安全?安全地获取&std列表项目?
std::list<Something> someList;
...
someList.push_back(Something(8));
Something* something = &someList.back();
我认为这是安全的,但我不完全确定。
感谢
是,直到你从someList
抹去它的对象将是有效的。请参阅Iterator Invalidation Rules以获取有关何时可以销毁各种容器操作的对象的信息。
是的,几乎没有任何东西会使指针或对'list'元素的引用无效。 –
即使这是有效的代码,如果您使用原始指针来引用C++中的事物,您可能需要考虑不同的机制,例如使用迭代器或引用。 – fluffy