在多个容器中存储对象的最佳实践
Best practice for storing object in multiple containers
我想在priority_queue
和unordered_map
中存储一个对象。做这样的事情有什么最佳实践吗?我考虑过将对象存储在单独的容器中(例如array
),然后放弃指向其他两个容器的指针。
我很犹豫是否要这样做,因为这意味着我必须编写一些额外的比较器来处理容器将存储指针而不是实际对象的事实。此外,还有管理我不想处理的对象的所有权的额外工作。
所以,我想知道是否已经有一个建立的最好的方法来做到这一点?
您已经看到,如果您希望一个内容出现在两个位置,则必须存储对对象的引用(某种类型)。虽然你曾经会使用指针,但今天我们使用了shared_ptr。
这包装了指针,所以你不必管理生命周期所有权——指针只会在shared_ptr的引用计数下降到0时被删除,即当所有持有shared_ptr的人都放弃它时。你使用shared_ptr对象作为一个真正的对象,所以它很容易在你的容器中管理。
如果您没有c++ 11编译器,您可以使用boost版本(附带一个在vector和set中存储shared_ptr对象的示例)
相关文章:
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 将FFMpeg AVFrame对象从C++应用程序流式传输到Python的最佳方法?
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 保留计时器集合(对象与指针)的最佳方法
- 将(临时的?)std::string传递给使用它来构造一个接受副本的对象的函数的最佳方法是什么?
- 从类中的对象调用类中的函数的最佳方法
- 这是使用构造函数初始化数组对象的最佳方法吗?
- 在 c++ 中重置大型对象实例的最佳方法是什么
- 将对象附加到智能指针向量的最佳方法
- 将对象数组作为参数传递的最佳方法是什么
- 如何为对象提供不同的接口(最佳)
- 调用列表中子对象方法的最佳方法
- 哪种数据结构是在一个向量中搜索和计数对象对的最佳数据结构
- 找到多组对象的最佳匹配的算法
- C++拥有持久对象的最佳方式
- 动态创建新对象的最佳方法
- 用C++编写返回对象的函数的最佳方法是什么
- 两者之间的最佳方法是什么:实例化对象或使用指针
- 确定两个文件路径引用同一文件对象的最佳方法是什么