我正在努力理解将引用或指针安全地存储在容器中的项目的最佳方法,而不会冒指针可能会失效的风险。
std::vector
一般来说,这似乎是一个坏主意,因为您永远不知道您的项目何时可能会在重新分配时被移动到新的内存位置vector
。有没有这样的方法?
使用list
并且deque
这是一个更好的选择吗?据我了解,这些集合中的项目不会四处移动,所以我可以只使用指向特定元素的内存地址的指针吗?
我来自Objective-C,因为Objective-C几乎使用指针来处理所有东西,所以这种事情在它的所有容器中都很容易和常见,因此将它们折腾并复制它们是很常见的。