Mus*_*shy 31 c++ smart-pointers unique-ptr c++11
a的std::unique_ptr具体用途是什么,何时以及如何最好地使用?
我发现:
我已经知道了:
std::unique_ptr 是用C++ 11开发的替代品 std::auto_ptrstd::unique_ptr没有引用计数和它所指向的"拥有"对象std::unique_ptrstd::unique_ptr就是结构我想知道的是:
std::unique_ptr更好的(除了唯一性)别的std::unique_ptr利于std::shared_ptr在几乎所有情况下都能满足动态内存管理的需要,为什么我可以处理一std::unique_ptr件事(同样,Kat*_*ory 10
理论上,你应该使用unique_ptr所有指针,除非你知道你想要分享它,在这种情况下你应该使用shared_ptr.原因是unique_ptr开销较少,因为它不计算引用.
但是,a unique_ptr是可移动的但不可复制,因此使用一个作为成员变量可能需要您编写更多代码(例如移动构造函数),按值传递一个意味着您将需要使用std::move等等.因此,有些人会使用shared_ptr懒惰,因为它更容易,而且他们的应用程序的性能差异可能不大.
最后一个原始指针适合观察 - 指针使用永远不会影响生命周期.仔细选择正确的指针类型可以让那些阅读代码的人很好地理解你在做什么.有关更多信息,请参阅Herb Sutter的文章,C++ Style的元素,特别是"no delete"部分.
| 归档时间: |
|
| 查看次数: |
21496 次 |
| 最近记录: |