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();//释放被管理对象的所有权