在C++ 11中我们应该总是使用unique_ptr
还是shared_ptr
而不是new
/delete
?性能如何,智能指针是否慢得多?C++ 11智能指针总是代替新的/删除?
5
A
回答
7
unique_ptr
与使用原始指针相比,没有(不应该)有任何运行时开销。 shared_ptr
确实有一些内存和时间开销(多少取决于实现)。如果实际需要的行为类似于shared_ptr
(即,没有其他实现可能会更快或更高内存效率),则此处的开销可能很容易为零。
这并不是说你永远不会在你的代码中使用新的/删除,但它不是你一直在做的事情。
2
相关问题
- 1. 我应该总是在C++中使用智能指针11
- 2. 智能指针代替指针
- 3. C++ 11:智能指针使用
- 4. C++ 11智能指针和多态性
- 5. C++智能指针
- 6. 删除或智能指针失败
- 7. C++中的智能指针
- 8. 删除智能指针,但仍可以访问指针?
- 9. C++ - 智能指针 - 在模板中投射智能指针
- 10. VTK智能指针新()
- 11. C++:实现智能指针
- 12. C++智能指针表现
- 13. C++ 11检查COM智能指针的成员
- 14. C++ 11智能指针的复合模式
- 15. 删除智能指针指向的对象
- 16. 针对directx的C++智能指针
- 17. 存储在C++ 11智能指针一个std ::螺纹
- 18. 转换为非标量类型与std C++ 11智能指针
- 19. c + +删除指针
- 20. C++删除指针
- 21. 用智能指针替换现有的原始指针
- 22. 以下是C++代码吗? (在智能指针实现)
- 23. C++ 11 - 复制指向抽象类型的智能指针的构造?
- 24. 自定义智能指针代码issue- couldnt智能指针最终在堆上?
- 25. 智能指针和迭代与自动
- 26. 智能指针在智能指针管理数组内
- 27. C++删除一个指针指针
- 28. 与智能指针
- 29. Boost智能指针
- 30. C++ API中的智能指针?
'unique_ptr'被设计为零成本抽象。学会停止担心和爱炸弹。 – 2013-03-15 12:45:36
我们如何使用智能指针**而不是**'new'和'delete'。我们必须用**'new'来使用它们**,以避免'delete' – iammilind 2013-03-15 12:46:48
@iammilind'make_shared'并且我还使用'make_unique'的实现。当然,它仍然在内部使用'new'。 – Cubic 2013-03-15 12:50:22