首頁 >後端開發 >C++ >存在哪些 C 智慧指標實作以及它們有何不同?

存在哪些 C 智慧指標實作以及它們有何不同?

Barbara Streisand
Barbara Streisand原創
2024-11-30 10:46:12653瀏覽

What C   Smart Pointer Implementations Exist and How Do They Differ?

有哪些 C 智慧指標實作可用?

C 03

  • std::auto_ptr:有限的垃圾回收,無法容納陣列分配的對象,不支援拷貝,已廢棄。
  • std::auto_ptr_ref: 不是智慧指針,與 std::auto_ptr 一起使用複製和賦值。

C 11

  • std::unique_ptr: 取代std::auto_ptr,改進性能,適用於數組,可用於STL
  • std::shared_ptr:引用計數智慧指針,可以被多個擁有者共享,線程安全。
  • std::weak_ptr: 對 std::shared_ptr擁有的物件的引用,不會阻止

Boost

  • boost::shared_ptr:符合標準的shared -pt r,容易使用,某些方面的開銷很高
  • boost::weak_ptr:符合標準的weak_ptr,允許非擁有引用boost::shared_ptr。
  • boost::scoped_ptr: 與std::unique_ptr類似,開銷比boost::shared_ptr少,不能用於 STL 容器。
  • boost::intrusive_ptr: 可自訂的智慧指針,用於建立您自己的智慧指標相容類別。
  • boost::shared_array: 陣列的Shared_ptr,支援動態陣列分配和
  • boost::scoped_array:

Qt

  • QPointer: QObject 及其衍生類別的弱智慧指針,不提供強的指針。
  • QSharedDataPointer:強智慧指針,需要手動引用計數,可以子類化QSharedData。
  • QExplicitlySharedDataPointer:與QSharedDataPointer類似,提供更多控制超過
  • QSharedPointer: 原子參考計數,>QSharedPointer:
  • 原子引用計數,線程安全,可自訂計數,高開銷。
  • QWeakPointer:
  • 弱智慧指針,與QSharedPointer防止循環引用。
  • QScopedPointer:
  • 單一擁有者智慧指針,比 QSharedPointer 開銷更少。

以上是存在哪些 C 智慧指標實作以及它們有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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