首页 > 解决方案 > 在地图 C++ 中存储对象引用

问题描述

我是 C++ 新手,并试图找出一种将对象引用存储在 map 或 unordered_map 中的好方法。

我已经尝试过 map<Key&, Value&> 和 map<reference_wrapper<Key>, reference_wrapper<Value>> 并且我最终可以让它工作,但它看起来非常难看,而且我确信它充满了错误。

我知道我可以使用指针来代替,但我不想分配内存,因为我必须在之后进行清理。

任何人都知道实现这一目标的好方法吗?

标签: c++referencehashmap

解决方案


如果你有一个参考,那么你就有一个参考所指的“事物”。因此,您可以轻松地存储指向同一“事物”的指针,而无需分配任何额外的内存。指针不需要动态分配。

话虽如此,除非您有真正的、可衡量的性能问题,否则存储智能指针将是最简单和最干净的。在您的设计中,我担心不明确的对象生命周期和悬空引用。


推荐阅读