您的位置:首页 > 其它

STL学习----入门(1)[memory]

2015-08-24 18:26 344 查看
#include<memory>:

指针类别

unique_ptr C++11带唯一独占对象所有权语义的智能指针(Smart pointer)
shared_ptr C++11带共享对象所有权语义的智能指针
weak_ptr C++11指向由 shared_ptr 管理的对象的弱引用
auto_ptr
已弃用
带严格的对象所有权语义的智能指针

辅助类

owner_less C++11提供了对共享及弱指针按拥有者(Owner-based)排序所用到的排序规则
enable_shared_from_this C++11允许一个对象可以创建指向自身的 shared_ptr
bad_weak_ptr C++11当访问一个指向已释放对象的 weak_ptr 时所抛出的异常
default_delete C++11unique_ptr 所使用的默认删除器

内存分配器

allocator默认的内存分配器
allocator_traits C++11为内存分配器类型提供特征信息
allocator_arg_t C++11这是一个空类,用于选择需要内存分配器的构造函数重载,是一个标签类型(Tag type)
uses_allocator C++11检测指定类型是否支持带内存分配器构造

其它

pointer_safety C++11这是一个枚举类型,列举
C++ 支持的指针安全性模型
pointer_traits C++11为类指针(Pointer-like)类型提供特征信息
std::hash<std::shared_ptr>
C++11
提供了对 shared_ptr 的哈希(Hash)支持
std::hash<std::unique_ptr>
C++11
提供了对 unique_ptr 的哈希支持

前置声明

hash
C++11
哈希函数对象

常题

allocator_arg C++11allocator_arg_t 类型的对象

函数

未初始化内存

uninitialized_copy拷贝一个范围的对象到一个未初始化内存区域
uninitialized_copy_n C++11拷贝指定类目的对象到一个未初始化内存区域
uninitialized_fill用一个对象的值填充一个范围的未初始化内存区域
uninitialized_fill_n用一个对象的值填充指定数目元素组成的未初始化内存区域
raw_storage_iterator这是一个迭代器,标准算法可以通过它将结果存储到未初始化内存区域
get_temporary_buffer获得未初始化的临时存储空间
return_temporary_buffer返回(即释放)未初始化的临时存储空间

垃圾回收支持

declare_reachable C++11声明一个对象不可以被回收(Recycle)
undeclare_reachable C++11声明一个对象可以被回收
declare_no_pointers C++11声明一个内存区域内不包含可追踪(Traceable)指针
undeclare_no_pointers C++11取消 declare_no_pointers 声明
pointer_safety C++11这是一个枚举类型,列举
C++ 支持的指针安全性模型
get_pointer_safety C++11获得当前指针安全性模型

杂项

addressof C++11获得一个对象的实际地址,即使 operator& 操作符已被重载
align C++11对齐指定缓存中的一个指针

智能指针的非成员操作

make_shared
C++11
创建一个用来管理新对象的共享指针
allocate_shared
C++11
创建一个用来管理使用内存分配器(Allocator)分配的新对象的共享指针
static_pointer_cast
C++11
提供了共享指针的 static_cast、dynamic_cast 或 const_cast 类型转换语义
dynamic_pointer_cast C++11
const_pointer_cast C++11
get_deleter C++11返回指定类型的删除器(Deleter),如果有的话
operator==

operator!=

operator<

operator<=

operator>

operator>=

shared_ptr
对象同另一个 shared_ptr 对象或同 nullptr 比较
operator<<将被管理的指针的值输出到输出流(Output stream)中
std::swap(std::shared_ptr)
C++11
std::swap
函数对 shared_ptr 类型所提供的特例化
std::atomic_is_lock_free(std::shared_ptr) C++11特例化原子操作
std::atomic_load(std::shared_ptr) C++11
std::atomic_load_explicit(std::shared_ptr) C++11
std::atomic_store(std::shared_ptr) C++11
std::atomic_store_explicit(std::shared_ptr) C++11
std::atomic_exchange(std::shared_ptr) C++11
std::atomic_exchange_explicit(std::shared_ptr) C++11
std::atomic_compare_exchange_weak(std::shared_ptr) C++11
std::atomic_compare_exchange_strong(std::shared_ptr) C++11
std::atomic_compare_exchange_weak_explicit(std::shared_ptr) C++11
std::atomic_compare_exchange_strong_explicit(std::shared_ptr) C++11
operator==

operator!=

operator<

operator<=

operator>

operator>=

unique_ptr
对象同另一个 unique_ptr 对象或同 nullptr 比较
std::swap(std::unique_ptr)
C++11
std::swap
函数对 std::unique_ptr 类型所提供的特例化
std::swap(std::weak_ptr) C++11std::swap 函数对 std::weak_ptr 类型所提供的特例化

内存分配器的非成员操作

operator==

operator!=
比较两个内存分配器实例
operator==

operator!=
比较两个多级(Multi-level)内存分配器实例

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: