a 的推荐用途是什么std::unique_ptr
,具体在哪里、何时以及如何最好地使用它?
我发现:
我已经知道:
std::unique_ptr
是在 C++11 中开发的,以替代std::auto_ptr
- a
std::unique_ptr
没有引用计数并且“拥有”它指向的对象 - 没有复制/分配
std::unique_ptr
- 当我需要一个唯一的指针时,
std::unique_ptr
是转到结构
我想知道的:
- 使用
std::unique_ptr
比其他东西更可取的(除了唯一性)
吗?在这种情况下我能得到什么? - 如果有,在什么情况下,什么时候?
- 考虑到移动语义的需要,这是否会导致整体
std::unique_ptr
不利
? - 如果
std::shared_ptr
在几乎所有情况下都足以进行动态内存管理,为什么我可以随意使用std::unique_ptr
(同样,
除了唯一性)?