首頁 >後端開發 >C++ >我應該選擇哪個 C 智慧指標?

我應該選擇哪個 C 智慧指標?

Patricia Arquette
Patricia Arquette原創
2024-12-02 17:10:12203瀏覽

Which C   Smart Pointer Should I Choose?

可用的C 智慧指標實作及其比較

C 03

  • C 03
  • C 03

std::auto_ptr:未來的C 標準中已棄用。有限的垃圾收集、所有權複雜性以及無法在 STL 容器中使用。

    std::auto_ptr_ref:
  • 不是真正的智慧指標;與 std::auto_ptr 結合使用以允許複製和賦值。
  • C 11
  • std::unique_ptr: 替換 std::auto_ptr。修正 std::auto_ptr 的弱點,允許使用陣列、左值保護以及在 STL 容器中使用。

std::shared_ptr: 引用計數智慧指標。支援別名和指針算術。

    std::weak_ptr:
  • 對 std::shared_ptr 擁有的物件的非擁有參考。防止無限循環引用計數。
  • Boost
  • boost::shared_ptr: 流行的共享引用計數智慧指標。高性能和多功能性。
  • boost::weak_ptr: 對 boost::shared_ptr 的非擁有參考。
  • boost::scoped_ptr:簡單的智慧指標替代boost::shared_ptr 且更少
  • boost::intrusive_ptr:
boost::intrusive_ptr:

用於建立您自己的智慧指標相容類別的自訂智慧指標。

boost::shared_array:
    共用智慧指標陣列。
  • boost::scoped_array:
  • 陣列的不可複製智慧指標。
  • Qt
  • QPointer: 衍生性指標QObject 和類型。已棄用。
  • QSharedDataPointer: 與 boost::intrusive_ptr 相當的強智能指針,具有線程安全性。
  • QExplicitlySharedDataPointer: QSharedDataPointer 2.0 版,具有增強功能控制
QSharedPointer: 原子引用指標QWeakPointer: 對a 的非擁有引用QSharedPointer.QScopedPointer: 基於擁有者異常指標」的單pedped_ptr,安全代碼和相容性。

以上是我應該選擇哪個 C 智慧指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn