一、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,這樣比較簡單