理解C 中的智慧指標:何時使用哪種類型
智慧型指標是現代C 程式設計中管理物件所有權和資源的基本工具壽命。 C 11 和 Boost 函式庫的出現引入了多種智慧指標類型,提出了在不同場景中使用哪一種的問題。
共享所有權
對於共享資源所有權,建議使用 std::shared_ptr 和 std::weak_ptr。 Shared_ptr允許多個擁有者共享資源,而weak_ptr提供非擁有參考來觀察資源而不影響其生命週期。 Boost也提供shared_array作為std::shared_ptr<:vector>的替代品。 const>.
唯一所有權
std::unique_ptr 是唯一所有權的預設選擇,與 Boost 的scoped_ptr 相比具有多個優勢。 Unique_ptr 支援自訂刪除器,可移動,並與 STL 容器相容。 Boost 提供了scoped_array 作為scoped_ptr 的陣列版本,它已在C 11 中標準化。
無所有權
原始指標或引用應用於非擁有引用指向比引用物件/作用域壽命更長的資源。原始指標允許為空和可重置,而引用則首選不變性。
Boost 智慧指標
Boost 提供了額外的智慧指標類型,例如 intrusive_ptr,這對於從現有資源中採用引用計數管理。然而,這些類型在 C 11 中尚未標準化。
棄用
std::auto_ptr 現已在 C 11 中棄用,轉而使用 unique_ptr,它提供了增強的功能.
以上是我應該使用哪個 C 智慧指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!