有哪些 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中文網其他相關文章!