c++ - 在地图 C++ 中存储对象引用
问题描述
我是 C++ 新手,并试图找出一种将对象引用存储在 map 或 unordered_map 中的好方法。
我已经尝试过 map<Key&, Value&> 和 map<reference_wrapper<Key>, reference_wrapper<Value>> 并且我最终可以让它工作,但它看起来非常难看,而且我确信它充满了错误。
我知道我可以使用指针来代替,但我不想分配内存,因为我必须在之后进行清理。
任何人都知道实现这一目标的好方法吗?
解决方案
如果你有一个参考,那么你就有一个参考所指的“事物”。因此,您可以轻松地存储指向同一“事物”的指针,而无需分配任何额外的内存。指针不需要动态分配。
话虽如此,除非您有真正的、可衡量的性能问题,否则存储智能指针将是最简单和最干净的。在您的设计中,我担心不明确的对象生命周期和悬空引用。
推荐阅读
- sql-server - 无法为 SQL Server 中同一主键的 2 个外键插入数据
- actions-on-google - 智能家居测试 Google Action 给出 500 错误
- time-series - 处理时间序列数据库中一列的高基数
- c# - 如何每n个单词插入一个字符串?
- python - 在特定日期和时间之前/之后截断错误
- python - gimp python - 如何更改像素颜色?
- google-chrome - Brotli 用于静态资源
- windows - Realsense Viewer/SDK 打不开
- java - 在一个表中形成复合键的列实际上在另一个表中作为外键写入实体类
- mysql - mysql concat 列名