命名空间
变体
操作

动态内存管理

来自 cppreference.com
< cpp
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三方比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用实用程序
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
动态内存管理
未初始化内存算法
受约束的未初始化内存算法
分配器
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)



 

内容

[编辑] 智能指针

智能指针支持自动的、异常安全的、对象生命周期管理。

定义在头文件 <memory>
指针类别
具有唯一对象所有权语义的智能指针
(类模板) [编辑]
具有共享对象所有权语义的智能指针
(类模板) [编辑]
(C++11)
对由 std::shared_ptr 管理的对象的弱引用
(类模板) [编辑]
(C++11 中已弃用)(C++17 中已移除)
具有严格对象所有权语义的智能指针
(类模板) [编辑]
辅助类
提供共享指针和弱指针的混合类型所有者排序
(类模板) [编辑]
为共享指针和弱指针提供所有者哈希
(类) [编辑]
提供共享指针和弱指针的混合类型所有者相等比较
(类) [编辑]
允许对象创建引用自身的 shared_ptr
(类模板) [编辑]
访问已销毁对象的 weak_ptr 时引发的异常
(类) [编辑]
unique_ptr 的默认删除器
(类模板) [编辑]
智能指针适配器
(C++23)
与外部指针设置器交互并在销毁时重置智能指针
(类模板) [编辑]
(C++23)
使用关联的智能指针和重置参数创建 out_ptr_t
(函数模板) [编辑]
与外部指针设置器交互,从智能指针获取初始指针值,并在销毁时重置它
(类模板) [编辑]
(C++23)
创建一个关联了智能指针和重置参数的 inout_ptr_t
(函数模板) [编辑]

[编辑] 分配器

分配器是封装内存分配策略的类模板。这允许泛型容器将内存管理与数据本身分离。

定义在头文件 <memory>
默认分配器
(类模板) [编辑]
提供有关分配器类型的的信息
(类模板) [编辑]
记录由 allocate_at_least 分配的存储的地址和实际大小
(类模板) [编辑]
用于选择支持分配器感知构造函数的标记
(标记)[编辑]
检查指定类型是否支持使用分配器构造
(类模板) [编辑]
准备与给定类型所需的使用分配器构造风格匹配的参数列表
(函数模板) [编辑]
通过使用分配器构造创建给定类型的对象
(函数模板) [编辑]
通过使用分配器构造在指定内存位置创建给定类型的对象
(函数模板) [编辑]
定义在头文件 <scoped_allocator>
实现多级容器的多级分配器
(类模板) [编辑]
定义在头文件 <memory_resource>
定义在命名空间 std::pmr
一个支持基于它所构造的 std::pmr::memory_resource 的运行时多态性的分配器
(类模板) [编辑]

[编辑] 内存资源 (自 C++17 起)

内存资源实现内存分配策略,这些策略可供 std::pmr::polymorphic_allocator 使用

定义在头文件 <memory_resource>
定义在命名空间 std::pmr
封装内存资源的类的抽象接口
(类) [编辑]
返回一个使用全局 operator newoperator delete 来分配和释放内存的静态程序范围 std::pmr::memory_resource
(函数) [编辑]
返回一个不执行分配的静态 std::pmr::memory_resource
(函数) [编辑]
获取默认的 std::pmr::memory_resource
(函数) [编辑]
设置默认的 std::pmr::memory_resource
(函数) [编辑]
一组用于池资源的构造选项
(类) [编辑]
一个线程安全的 std::pmr::memory_resource,用于管理不同块大小池中的分配
(类) [编辑]
一个线程不安全的 std::pmr::memory_resource,用于管理不同块大小池中的分配
(类) [编辑]
一个特殊用途的 std::pmr::memory_resource,它只在资源被销毁时释放分配的内存
(类) [编辑]

[编辑] 未初始化存储

提供了一些实用程序来创建和访问原始存储。

定义在头文件 <memory>
(在 C++17 中已弃用)(在 C++20 中删除)
一个迭代器,允许标准算法将结果存储在未初始化的内存中
(类模板) [编辑]
(在 C++17 中已弃用)(在 C++20 中删除)
获取未初始化的存储
(函数模板) [编辑]
(在 C++17 中已弃用)(在 C++20 中删除)
释放未初始化的存储
(函数模板) [编辑]

[编辑] 未初始化内存算法

定义在头文件 <memory>
将对象范围复制到未初始化的内存区域
(函数模板) [编辑]
将一定数量的对象复制到未初始化的内存区域
(函数模板) [编辑]
将对象复制到未初始化的内存区域(由范围定义)
(函数模板) [编辑]
将对象复制到未初始化的内存区域(由起始位置和计数定义)
(函数模板) [编辑]
将对象范围移动到未初始化的内存区域
(函数模板) [编辑]
将一定数量的对象移动到未初始化的内存区域
(函数模板) [编辑]
通过 默认初始化 在未初始化的内存区域(由范围定义)中构造对象
(函数模板) [编辑]
通过 默认初始化 在未初始化的内存区域(由起始位置和计数定义)中构造对象
(函数模板) [编辑]
通过 值初始化 在未初始化的内存区域(由范围定义)中构造对象
(函数模板) [编辑]
通过 值初始化 在未初始化的内存区域(由起始位置和计数定义)中构造对象
(函数模板) [编辑]
销毁给定地址处的对象
(函数模板) [编辑]
(C++17)
销毁一系列对象
(函数模板) [编辑]
(C++17)
销毁一系列对象中的指定数量对象
(函数模板) [编辑]
在指定地址创建对象
(函数模板) [编辑]

[编辑] 受限未初始化内存算法 (自 C++20)

C++20 提供了 受限 未初始化内存算法,这些算法接受范围参数或迭代器-哨兵对。

定义在头文件 <memory>
定义在命名空间 std::ranges
指定迭代器、哨兵和范围上的某些操作是非抛出的
((仅供展示的概念*))
将对象范围复制到未初始化的内存区域
(niebloid)[编辑]
将一定数量的对象复制到未初始化的内存区域
(niebloid)[编辑]
将对象复制到未初始化的内存区域(由范围定义)
(niebloid)[编辑]
将对象复制到未初始化的内存区域(由起始位置和计数定义)
(niebloid)[编辑]
将对象范围移动到未初始化的内存区域
(niebloid)[编辑]
将一定数量的对象移动到未初始化的内存区域
(niebloid)[编辑]
通过 默认初始化 在未初始化的内存区域(由范围定义)中构造对象
(niebloid)[编辑]
通过 默认初始化 在未初始化的内存区域中构造对象,该区域由起始位置和数量定义
(niebloid)[编辑]
通过 值初始化 在未初始化的内存区域(由范围定义)中构造对象
(niebloid)[编辑]
通过 值初始化 在未初始化的内存区域(由起始位置和计数定义)中构造对象
(niebloid)[编辑]
销毁给定地址处的对象
(niebloid)[编辑]
销毁一系列对象
(niebloid)[编辑]
销毁一系列对象中的指定数量对象
(niebloid)[编辑]
在指定地址创建对象
(niebloid)[编辑]

[编辑] 垃圾收集器支持 (直到 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 中移除)
返回当前指针安全模型
(函数) [编辑]

[编辑] 显式生命周期管理 (自 C++23)

定义在头文件 <memory>
在给定存储中隐式创建对象,并重用对象表示
(函数模板) [编辑]

[编辑] 杂项

定义在头文件 <memory>
提供有关指针类类型的详细信息
(类模板) [编辑]
从指针类类型获取原始指针
(函数模板) [编辑]
(C++11)
获取对象的实际地址,即使 & 运算符被重载
(函数模板) [编辑]
(C++11)
在缓冲区中对齐指针
(函数) [编辑]
告知编译器指针已对齐
(函数模板) [编辑]

[编辑] 低级内存管理

包括例如 operator newoperator deletestd::set_new_handler

定义在头文件 <new>

[编辑] C 风格内存管理

包括例如 std::mallocstd::free

定义在头文件 <cstdlib>