在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