命名空間
變體
動作

記憶體管理函式庫

出自 cppreference.com
< cpp
 
 
記憶體管理函式庫
僅供說明*
Uninitialized memory algorithms
(C++17)
(C++17)
(C++17)
Constrained uninitialized
memory algorithms
C Library

配置器
Memory resources
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
未初始化儲存
(至 C++20* 止已棄用)
(至 C++20* 止已棄用)
(至 C++20* 止已棄用)
顯式生命週期管理
 

目錄

[edit] 智慧型指標 (C++11 以來)

智慧型指標能實現自動、例外安全的物件生命週期管理。

定義於標頭檔 <memory>
指標類別
具有唯一物件所有權語意的智慧型指標
(類別範本) [編輯]
具有共享物件所有權語意的智慧型指標
(類別範本) [編輯]
(C++11)
指向由 std::shared_ptr 管理之物件的弱參考
(類別範本) [編輯]
(於 C++11 廢棄)(於 C++17 移除)
具有嚴格物件擁有權語意的智慧型指標
(類別模板) [edit]
輔助類別
提供基於所有者的共享與弱指標混合型別排序
(類別範本) [編輯]
提供基於所有者的共享與弱指標雜湊
(類別) [編輯]
提供基於所有者的共享與弱指標混合型別相等比較
(類別) [編輯]
允許物件建立指向自身的 shared_ptr
(類別範本) [編輯]
當存取指向已銷毀物件的 weak_ptr 時所拋出的例外
(類別) [edit]
unique_ptr 的預設刪除器
(類別範本) [編輯]
智慧型指標轉接器 (C++23 以來)
(C++23)
與外部指標設定器互通,並在銷毀時重設智慧型指標
(類別範本) [編輯]
(C++23)
建立一個帶有關聯智慧型指標及重設引數的 out_ptr_t
(函式範本) [編輯]
與外部指標設定器互通,從智慧型指標取得初始指標值,並在銷毀時重設
(類別範本) [編輯]
(C++23)
建立一個帶有關聯智慧型指標及重設引數的 inout_ptr_t
(函式範本) [編輯]

[edit] 配置器

配置器是將記憶體配置策略封裝起來的類別模板。這讓泛型容器能夠將記憶體管理與資料本身解耦。

定義於標頭檔 <memory>
預設配置器
(類別模板) [編輯]
提供關於配置器型別的資訊
(類別範本) [編輯]
記錄由 allocate_at_least 所配置的儲存位址與實際大小
(類別範本) [編輯]
用於選擇配置器感知建構子的標籤
(標籤)[編輯]
檢查指定型別是否支援使用配置器建構
(類別範本) [編輯]
準備與給定型別所需之使用配置器建構風格相符的引數列表
(函式範本) [編輯]
透過使用配置器建構方式,建立給定型別的物件
(函式範本) [編輯]
透過使用配置器建構方式,在指定記憶體位置建立給定型別的物件
(函式範本) [編輯]
定義於標頭檔 <scoped_allocator>
為多層級容器實作多層級配置器
(類別模板) [編輯]
定義於標頭檔 <memory_resource>
定義於命名空間 std::pmr
一種支援基於其建構時所使用的 std::pmr::memory_resource 進行執行期多型操作的配置器
(類別模板) [編輯]

[edit] 記憶體資源 (C++17 以來)

記憶體資源實現了可供 std::pmr::polymorphic_allocator 使用的記憶體配置策略。

定義於標頭檔 <memory_resource>
定義於命名空間 std::pmr
用於封裝記憶體資源的類別的抽象介面
(類別) [edit]
回傳一個靜態的全程式 std::pmr::memory_resource ,它使用全域的 operator newoperator delete 來配置與釋放記憶體
(函式) [edit]
回傳一個靜態的 std::pmr::memory_resource ,它不執行任何配置
(函式) [edit]
取得預設的 std::pmr::memory_resource
(函式) [edit]
設定預設的 std::pmr::memory_resource
(函式) [edit]
用於資源池建構子選項的集合
(類別) [edit]
一個執行緒安全的 std::pmr::memory_resource ,用於管理不同區塊大小池中的配置
(類別) [edit]
一個執行緒不安全的 std::pmr::memory_resource ,用於管理不同區塊大小池中的配置
(類別) [edit]
一個特殊用途的 std::pmr::memory_resource ,它僅在資源被銷毀時才釋放已配置的記憶體
(類別) [edit]

[edit] 未初始化儲存 (C++17 為止)

提供了數個工具來建立與存取原始儲存。

定義於標頭檔 <memory>
(於 C++17 廢棄)(於 C++20 移除)
一個迭代器,允許標準演算法將結果儲存在未初始化記憶體中
(類別模板) [edit]
(於 C++17 廢棄)(於 C++20 移除)
取得未初始化儲存
(函式範本) [編輯]
(於 C++17 廢棄)(於 C++20 移除)
釋放未初始化儲存
(函式範本) [編輯]

[edit] 未初始化記憶體演算法

定義於標頭檔 <memory>
將物件範圍複製到未初始化的記憶體區域
(函式模板) [編輯]
將一定數量的物件複製到未初始化的記憶體區域
(函式模板) [編輯]
將一個物件複製到由範圍定義的未初始化記憶體區域
(函式模板) [編輯]
將一個物件複製到由起始點和計數定義的未初始化記憶體區域
(函式模板) [編輯]
將物件範圍移動到未初始化的記憶體區域
(函式模板) [編輯]
將一定數量的物件移動到未初始化的記憶體區域
(函式模板) [編輯]
透過預設初始化 (default-initialization) 在由範圍定義的未初始化記憶體區域中建構物件
(函式模板) [編輯]
透過預設初始化 (default-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件
(函式模板) [編輯]
透過值初始化 (value-initialization) 在由範圍定義的未初始化記憶體區域中建構物件
(函式模板) [編輯]
透過值初始化 (value-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件
(函式模板) [編輯]
銷毀位於給定地址的物件
(函式模板) [編輯]
(C++17)
銷毀一個物件範圍
(函式模板) [編輯]
(C++17)
銷毀範圍內的一定數量的物件
(函式模板) [編輯]
在給定地址建立物件
(函式模板) [編輯]

[edit] 受限的未初始化記憶體演算法 (C++20 以來)

C++20 提供了 受限的 未初始化記憶體演算法,接受範圍引數或迭代器-標記對。

定義於標頭檔 <memory>
定義於命名空間 std::ranges
指定在迭代器、標記與範圍上的一些操作不會拋出例外
(僅供闡釋的概念*)
將物件範圍複製到未初始化的記憶體區域
(演算法函式物件)[編輯]
將一定數量的物件複製到未初始化的記憶體區域
(演算法函式物件)[編輯]
將一個物件複製到由範圍定義的未初始化記憶體區域
(演算法函式物件)[編輯]
將一個物件複製到由起始點和計數定義的未初始化記憶體區域
(演算法函式物件)[編輯]
將物件範圍移動到未初始化的記憶體區域
(演算法函式物件)[編輯]
將一定數量的物件移動到未初始化的記憶體區域
(演算法函式物件)[編輯]
透過預設初始化 (default-initialization) 在由範圍定義的未初始化記憶體區域中建構物件
(演算法函式物件)[編輯]
透過預設初始化 (default-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件
(演算法函式物件)[編輯]
透過值初始化 (value-initialization) 在由範圍定義的未初始化記憶體區域中建構物件
(演算法函式物件)[編輯]
透過值初始化 (value-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件
(演算法函式物件)[編輯]
銷毀位於給定地址的物件
(演算法函式物件)[編輯]
銷毀一個物件範圍
(演算法函式物件)[編輯]
銷毀範圍內的一定數量的物件
(演算法函式物件)[編輯]
在給定地址建立物件
(演算法函式物件)[編輯]

[edit] 垃圾回收器支援 (C++23 為止)

定義於標頭檔 <memory>
(C++11 起)(於 C++23 移除)
宣告物件不能被回收
(函式) [編輯]
(C++11 起)(於 C++23 移除)
宣告物件可以被回收
(函式範本) [編輯]
(C++11 起)(於 C++23 移除)
宣告記憶體區域不包含可追蹤指標
(函式) [編輯]
(C++11 起)(於 C++23 移除)
取消 std::declare_no_pointers 的效果
(函式) [編輯]
(C++11 起)(於 C++23 移除)
列出指標安全模型
(列舉) [編輯]
(C++11 起)(於 C++23 移除)
回傳目前指標安全模型
(函式) [編輯]

[edit] 明確的生命週期管理 (C++23 以來)

定義於標頭檔 <memory>
在給定儲存中隱式建立物件,並重用物件表示
(函式範本) [編輯]

[edit] 其他

定義於標頭檔 <memory>
提供關於類指標型別的資訊
(類別範本) [編輯]
從類指標型別取得原始指標
(函式範本) [編輯]
(C++11)
取得物件的實際位址,即使 & 運算子被重載
(函式範本) [編輯]
(C++11)
對齊緩衝區中的指標
(函式) [編輯]
告知編譯器指標已對齊
(函式範本) [編輯]
檢查指標是否指向一個其對齊值至少為給定值的物件
(函式模板) [edit]

[edit] 低階記憶體管理

包含例如 operator newoperator deletestd::set_new_handler 等。

定義於標頭檔 <new>

[edit] C 風格記憶體管理

包含例如 std::mallocstd::free 等。

定義於標頭檔 <cstdlib>
English Deutsch 日本語 中文(简体) 中文(繁體)