Dynamic memory management
动态内存管理
智能指针
智能指针启用自动、异常安全、对象生存期管理.
在标头中定义<memory>
*。
指针类别
独树一帜[医]PTR%28C++11%29智能指针,具有唯一对象所有权语义%28类模板%29
共享[医]具有共享对象所有权语义的PTR%28C++11%29智能指针%28类模板%29
弱[医]ptr%28C++11%29弱引用到由std::Shared管理的对象[医]PTR%28类模板%29
汽车[医]PTR%28,直到C++17%29智能指针具有严格的对象所有权语义%28类模板%29
帮助者类
业主[医]减%28c++11%29提供了基于混合类型所有者的共享和弱指针排序%28类模板%29。
使能[医]共享[医]从[医]此%28C++11%29允许对象创建共享[医]PTR指的是它自己%28类模板%29
坏[医]弱[医]访问弱时引发的PTR%28C++11%29异常[医]PTR,指已销毁的对象%28级%29
违约[医]删除%28C++11%29默认删除[医]PTR%28类模板%29
分配器
分配器是封装内存分配策略的类模板。这允许通用容器将内存管理与数据本身分离开来。
在标头中定义<memory>
*。
默认分配器%28类模板%29
分配器[医]属性%28C++11%29提供有关分配程序类型的信息%28类模板%29
分配器[医]阿格[医]t%28C++11%29标记类型,用于选择分配器感知的构造函数重载%28class%29
分配器[医]Arg%28C++11%29是std类型的对象::[医]阿格[医]t用于选择分配器感知构造函数%28常量%29
使用[医]分配器%28C++11%29检查指定类型是否支持使用-分配程序构造%28类模板%29
在标头中定义<作用域[医]分配器>
范围[医]分配器[医]适配器%28C++11%29实现了多级容器的多级分配器%28类模板%29
在头<内存中定义[医]资源>
在命名空间PMR中定义
多态[医]分配器%28C++17%29基于std::内存支持运行时多态性的分配器[医]资源它是用%28类模板%29构造的。
内存资源
内存资源实现可由std::pmr::polymorphic_allocator
...
在头<内存中定义[医]资源>
*。
在命名空间PMR中定义
记忆[医]资源%28C++17%29封装内存资源%28class%29的类的抽象接口
新[医]删除[医]资源%28C++17%29返回一个静态程序范围的std::pmr::Memory[医]使用全局运算符New和Operator DELETE分配和释放内存%28功能%29的资源
零[医]记忆[医]资源%28C++17%29返回静态std::pmr::Memory[医]不执行分配%28功能%29的资源
弄到[医]违约[医]资源%28C++17%29获取默认的std::pmr::内存[医]资源%28功能%29
集[医]违约[医]资源%28C++17%29设置默认的std::pmr::内存[医]资源%28功能%29
水池[医]选项%28C++17%29池资源的一组构造函数选项%28class%29
同步[医]水池[医]资源%28C++17%29一个线程安全的STD::pmr::内存[医]用于管理不同块大小的池中分配的资源%28class%29
不同步[医]水池[医]资源%28C++17%29 a线程-不安全的std::pmr::内存[医]用于管理不同块大小的池中分配的资源%28class%29
单调[医]缓冲器[医]资源%28C++17%29一个特殊用途的std::pmr::Memory[医]只在资源被销毁时释放分配内存的资源%28class%29
未初始化存储
提供了几个实用程序来创建和访问原始存储。
在标头中定义<memory>
*。
未初始化[医]将一系列对象复制到未初始化的内存区域%28函数模板%29
未初始化[医]复制[医]n%28C++11%29将多个对象复制到未初始化的内存区域%28函数模板%29
未初始化[医]填充将对象复制到未初始化的内存区域,该区域由范围%28函数模板%29定义
未初始化[医]填充[医]n将对象复制到未初始化的内存区域,该区域由开始和计数%28函数模板%29定义。
未初始化[医]移动%28C++17%29将一系列对象移动到未初始化的内存区域%28函数模板%29
未初始化[医]移动[医]n%28C++17%29将多个对象移动到未初始化的内存区域%28函数模板%29
未初始化[医]违约[医]构造%28C++17%29默认情况下在未初始化的内存区域中构造对象,该区域由范围%28函数模板%29定义
未初始化[医]违约[医]构造[医]默认情况下,n%28C++17%29在未初始化的内存区域中构造对象,由启动和计数%28函数模板%29定义。
未初始化[医]价值[医]构造%28C++17%29在未初始化的内存区域中通过值初始化构造对象,该区域由范围%28函数模板%29定义
未初始化[医]价值[医]构造[医]n%28C++17%29通过值初始化在未初始化的内存区域中构造对象,该区域由启动和计数%28函数模板%29定义
毁灭[医]在%28C++17%29中销毁给定地址的对象%28函数模板%29
销毁%28C++17%29销毁一系列对象%28功能模板%29
毁灭[医]n%28C++17%29销毁范围%28功能模板%29中的多个对象
生[医]储物[医]迭代器%28在C++17%29中不推荐,它允许标准算法存储未初始化内存%28类模板%29的结果
弄到[医]暂时性[医]C++17%29中不推荐的缓冲区%28获得未初始化的存储%28功能模板%29
回归[医]暂时性[医]缓冲区%28在C++17%29中不推荐使用,释放未初始化的存储%28功能模板%29
垃圾收集器支持
在标头中定义<memory>
*。
申报[医]可访问的%28C++11%29声明一个对象不能回收%28功能%29
未申报[医]可达%28C++11%29声明可以回收对象%28功能模板%29
申报[医]否[医]指针%28C++11%29声明内存区域不包含可跟踪指针%28函数%29
未申报[医]否[医]指针%28C++11%29取消std::[医]否[医]指针%28函数%29
指针[医]安全%28C++11%29列出指针安全模型%28类%29
弄到[医]指针[医]安全%28C++11%29返回当前指针安全模型%28函数%29
杂类
在标头中定义<memory>
*。
指针[医]属性%28C++11%29提供了关于类指针类型%28类模板%29的信息。
%28C++11%29的地址获得对象的实际地址,即使运算符重载%28函数模板%29
对齐%28C++11%29在缓冲区%28功能%29中对齐指针
C型内存管理
包括。std::malloc
,,,std::free
...
低级内存管理
包括。operator new
,,,operator delete
,,,std::set_new_handler
...
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。