假设我想将unique_ptr保存到两个数据结构内的同一个对象中,有什么方法可以做到这一点,或者我应该考虑使用不同的方法?
在我的情况下,我有一个支持快速搜索的地图,我还想在两个其他数据结构中保持对键和值的引用..(说清单)
我真的很想听听更有经验的C++开发人员的建议,或者可能是Unique_ptr的替代方案.
提前致谢
假设我想将unique_ptr保存到两个数据结构内的同一个对象中,有什么方法可以做到这一点
是的,一点没错!现在,unique_ptr传达了独特的所有权语义 - 但没有任何东西说你也不能从其他地方获得它的引用.请注意,只有一个对象可以拥有它,其他数据结构必须是必须的.因此,该对象应始终具有比拥有唯一指针的对象更短的生命周期,以避免无效的内存访问.
现在你只让一个对象持有unique_ptr<T>,对象持有一个raw T*指向第一个对象的地址(通过获得.get()).
如果在您的情况下无法实现这种情况,那么unique_ptr就不是正确的工具 - shared_ptr而是使用.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |