给定一个不连续的STL容器(您也可以考虑boost::unordered_map
和boost::multi_index_container
),如果没有删除任何元素(但可以添加新的元素),是否可以保证容器内元素的内存地址永远不会改变?
例如:
class ABC { };
//
//...
//
std::list<ABC> abclist;
ABC abc;
abclist.insert(abc);
ABC * abc_ptr = &(*abclist.begin());
换句话说,如果我不从abc_ptr
中删除abc
,那么在整个执行过程中,abc_list
会被指向abc
吗?
我之所以这样问,是因为我要用C++/Cli包装类ABC
,因此我需要指向包装器类中ABC
实例的指针。ABC是一个简单的类,我想让容器来处理内存。如果答案是否定的,那么我将使用std::list<ABC*>
。
https://stackoverflow.com/questions/5182122
复制相似问题