記憶體管理函式庫
出自 cppreference.com
< cpp
目錄 |
[edit] 智慧型指標 (C++11 以來)
智慧型指標能實現自動、例外安全的物件生命週期管理。
| 定義於標頭檔
<memory> | |
指標類別 | |
| (C++11) |
具有唯一物件所有權語意的智慧型指標 (類別範本) |
| (C++11) |
具有共享物件所有權語意的智慧型指標 (類別範本) |
| (C++11) |
指向由 std::shared_ptr 管理之物件的弱參考 (類別範本) |
| (於 C++11 廢棄)(於 C++17 移除) |
具有嚴格物件擁有權語意的智慧型指標 (類別模板) |
輔助類別 | |
| (C++11) |
提供基於所有者的共享與弱指標混合型別排序 (類別範本) |
| (C++26) |
提供基於所有者的共享與弱指標雜湊 (類別) |
| (C++26) |
提供基於所有者的共享與弱指標混合型別相等比較 (類別) |
| (C++11) |
允許物件建立指向自身的 shared_ptr(類別範本) |
| (C++11) |
當存取指向已銷毀物件的 weak_ptr 時所拋出的例外(類別) |
| (C++11) |
unique_ptr 的預設刪除器 (類別範本) |
智慧型指標轉接器 (C++23 以來) | |
| (C++23) |
與外部指標設定器互通,並在銷毀時重設智慧型指標 (類別範本) |
| (C++23) |
建立一個帶有關聯智慧型指標及重設引數的 out_ptr_t(函式範本) |
| (C++23) |
與外部指標設定器互通,從智慧型指標取得初始指標值,並在銷毀時重設 (類別範本) |
| (C++23) |
建立一個帶有關聯智慧型指標及重設引數的 inout_ptr_t(函式範本) |
[edit] 配置器
配置器是將記憶體配置策略封裝起來的類別模板。這讓泛型容器能夠將記憶體管理與資料本身解耦。
| 定義於標頭檔
<memory> | |
| 預設配置器 (類別模板) | |
| (C++11) |
提供關於配置器型別的資訊 (類別範本) |
| (C++23) |
記錄由 allocate_at_least 所配置的儲存位址與實際大小(類別範本) |
| (C++11) |
用於選擇配置器感知建構子的標籤 (標籤) |
| (C++11) |
檢查指定型別是否支援使用配置器建構 (類別範本) |
| 準備與給定型別所需之使用配置器建構風格相符的引數列表 (函式範本) | |
| (C++20) |
透過使用配置器建構方式,建立給定型別的物件 (函式範本) |
| 透過使用配置器建構方式,在指定記憶體位置建立給定型別的物件 (函式範本) | |
| 定義於標頭檔
<scoped_allocator> | |
| (C++11) |
為多層級容器實作多層級配置器 (類別模板) |
| 定義於標頭檔
<memory_resource> | |
| 定義於命名空間
std::pmr | |
| (C++17) |
一種支援基於其建構時所使用的 std::pmr::memory_resource 進行執行期多型操作的配置器 (類別模板) |
[edit] 記憶體資源 (C++17 以來)
記憶體資源實現了可供 std::pmr::polymorphic_allocator 使用的記憶體配置策略。
| 定義於標頭檔
<memory_resource> | |
| 定義於命名空間
std::pmr | |
| (C++17) |
用於封裝記憶體資源的類別的抽象介面 (類別) |
| (C++17) |
回傳一個靜態的全程式 std::pmr::memory_resource ,它使用全域的 operator new 與 operator delete 來配置與釋放記憶體 (函式) |
| (C++17) |
回傳一個靜態的 std::pmr::memory_resource ,它不執行任何配置 (函式) |
| (C++17) |
取得預設的 std::pmr::memory_resource (函式) |
| (C++17) |
設定預設的 std::pmr::memory_resource (函式) |
| (C++17) |
用於資源池建構子選項的集合 (類別) |
| (C++17) |
一個執行緒安全的 std::pmr::memory_resource ,用於管理不同區塊大小池中的配置 (類別) |
| (C++17) |
一個執行緒不安全的 std::pmr::memory_resource ,用於管理不同區塊大小池中的配置 (類別) |
| (C++17) |
一個特殊用途的 std::pmr::memory_resource ,它僅在資源被銷毀時才釋放已配置的記憶體 (類別) |
[edit] 未初始化儲存 (C++17 為止)
提供了數個工具來建立與存取原始儲存。
| 定義於標頭檔
<memory> | |
| (於 C++17 廢棄)(於 C++20 移除) |
一個迭代器,允許標準演算法將結果儲存在未初始化記憶體中 (類別模板) |
| (於 C++17 廢棄)(於 C++20 移除) |
取得未初始化儲存 (函式範本) |
| (於 C++17 廢棄)(於 C++20 移除) |
釋放未初始化儲存 (函式範本) |
[edit] 未初始化記憶體演算法
| 定義於標頭檔
<memory> | |
| 將物件範圍複製到未初始化的記憶體區域 (函式模板) | |
| (C++11) |
將一定數量的物件複製到未初始化的記憶體區域 (函式模板) |
| 將一個物件複製到由範圍定義的未初始化記憶體區域 (函式模板) | |
| 將一個物件複製到由起始點和計數定義的未初始化記憶體區域 (函式模板) | |
| (C++17) |
將物件範圍移動到未初始化的記憶體區域 (函式模板) |
| (C++17) |
將一定數量的物件移動到未初始化的記憶體區域 (函式模板) |
| 透過預設初始化 (default-initialization) 在由範圍定義的未初始化記憶體區域中建構物件 (函式模板) | |
| 透過預設初始化 (default-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件 (函式模板) | |
| 透過值初始化 (value-initialization) 在由範圍定義的未初始化記憶體區域中建構物件 (函式模板) | |
| 透過值初始化 (value-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件 (函式模板) | |
| (C++17) |
銷毀位於給定地址的物件 (函式模板) |
| (C++17) |
銷毀一個物件範圍 (函式模板) |
| (C++17) |
銷毀範圍內的一定數量的物件 (函式模板) |
| (C++20) |
在給定地址建立物件 (函式模板) |
[edit] 受限的未初始化記憶體演算法 (C++20 以來)
C++20 提供了 受限的 未初始化記憶體演算法,接受範圍引數或迭代器-標記對。
| 定義於標頭檔
<memory> | |
| 定義於命名空間
std::ranges | |
| 指定在迭代器、標記與範圍上的一些操作不會拋出例外 (僅供闡釋的概念*) | |
| (C++20) |
將物件範圍複製到未初始化的記憶體區域 (演算法函式物件) |
| (C++20) |
將一定數量的物件複製到未初始化的記憶體區域 (演算法函式物件) |
| (C++20) |
將一個物件複製到由範圍定義的未初始化記憶體區域 (演算法函式物件) |
| (C++20) |
將一個物件複製到由起始點和計數定義的未初始化記憶體區域 (演算法函式物件) |
| (C++20) |
將物件範圍移動到未初始化的記憶體區域 (演算法函式物件) |
| (C++20) |
將一定數量的物件移動到未初始化的記憶體區域 (演算法函式物件) |
| 透過預設初始化 (default-initialization) 在由範圍定義的未初始化記憶體區域中建構物件 (演算法函式物件) | |
| 透過預設初始化 (default-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件 (演算法函式物件) | |
| 透過值初始化 (value-initialization) 在由範圍定義的未初始化記憶體區域中建構物件 (演算法函式物件) | |
| 透過值初始化 (value-initialization) 在由起始點和計數定義的未初始化記憶體區域中建構物件 (演算法函式物件) | |
| (C++20) |
銷毀位於給定地址的物件 (演算法函式物件) |
| (C++20) |
銷毀一個物件範圍 (演算法函式物件) |
| (C++20) |
銷毀範圍內的一定數量的物件 (演算法函式物件) |
| (C++20) |
在給定地址建立物件 (演算法函式物件) |
[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++20) |
從類指標型別取得原始指標 (函式範本) |
| (C++11) |
取得物件的實際位址,即使 & 運算子被重載(函式範本) |
| (C++11) |
對齊緩衝區中的指標 (函式) |
| (C++20) |
告知編譯器指標已對齊 (函式範本) |
| (C++26) |
檢查指標是否指向一個其對齊值至少為給定值的物件 (函式模板) |
[edit] 低階記憶體管理
包含例如 operator new、 operator delete、 std::set_new_handler 等。
| 定義於標頭檔
<new> |
[edit] C 風格記憶體管理
包含例如 std::malloc、 std::free 等。
| 定義於標頭檔
<cstdlib> |