标准库头文件:memory

1.常用变量

unique_ptr    //模板类,拥有独有对象所有权语义的智能指针
shared_ptr    //模板类,拥有共享对象所有权语义的智能指针,不会因为weak_ptr也指向同一个对象而引用计数加1
weak_ptr    //模板类,由shared_ptr所管理的对象的弱引用,避免循环引用
auto_ptr    //模板类,C++17中移除

2.常用操作

std::make_unique<int>(5);//将5变成独有对象
unique_ptr::get();//返回指向被管理对象的指针,如果无被管理对象,则为nullptr
unique_ptr::release();//释放被管理对象的所有权
unique_ptr::swap(unique_ptr& other);//交换两个被管理对象
std::make_shared<int>(5);//将5变成共享对象
shared_ptr::get();//返回指向被管理对象的指针,如果无被管理对象,则为nullptr
shared_ptr::swap(unique_ptr& other);//交换两个被管理对象
shared_ptr::use_count();//返回共享对象的引用计数
weak_ptr::use_count();//返回管理该对象的shared_ptr对象数量,将shared_ptr对象赋给weak_ptr对象,引用计数加一
weak_ptr::expired();//检查被引用的对象是否已删除 
weak_ptr::lock();//创建被引用的对象的shared_ptr 
auto_ptr::get();//返回指向被管理对象的指针,如果无被管理对象,则为nullptr
auto_ptr::release();//释放被管理对象的所有权

 

发布了36 篇原创文章 · 获赞 6 · 访问量 6970

猜你喜欢

转载自blog.csdn.net/zhuikefeng/article/details/104759331