#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <memory>
using namespace std;
int main()
{
shared_ptr<int> p1;
cout << "p1: " << p1 << endl; //0
shared_ptr<int> p2(nullptr);
cout << "p2: " << p2 << endl; //0
//初始化指针
shared_ptr<int> p3(new int(10)); //创建一个int型指针,赋值为10;
cout << "p3: " << p3 << endl;
cout << "*p3: " << *p3 << endl;
shared_ptr<int> p4 = std::make_shared<int>(10);//创建一个int型指针,赋值为10;
cout << "p4: " << p4 << endl;
cout << "*p4: " << *p4 << endl;
return 0;
}
其中,下面两种创建智能指针的方式相同。
shared_ptr<int> p3(new int(10));
shared_ptr<int> p4 = std::make_shared<int>(10);