一、shared_ptr类
头文件:#include<memory>
智能指针,是一个模板。创建智能指针时,必须提供指针所指的类型
如果当做前提条件判断,则是检测其是否为空
shared_ptr<string> p1; //指向string
shared_ptr<list<int>> p2;//指向int的list
if(p1 && p1->empty())
*p1="h1";
二、make_shared函数
最安全的分配和使用动态内存的方法就是调用该函数
此函数在内存中动态分配对象并初始化,返回此对象的shared_ptr
//指向一个值为42的int的shared_ptrshared_ptr<int> p = make_shared<int>(42);//p2指向一个值为10个'9'的stringshared_ptr<string> p2=make_shared<string>(10, '9');//p3指向一个值初始化为0的int数shared_ptr<int> p3 = make_shared<int>();
配合auto使用:make_shared函数可以赋值给auto,这样比较简单