在线文档教程
C++
应用 | Utilities

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。

http://en.cppreference.com/w/cpp/Memory