1 std::shared_ptr初始化的几种方式

这里只总结一下std::shared_ptr初始化的几种方,不对std::shared_ptr的优缺点进行说明,初始化的方式比较多,平时码字的时候经常会搞迷糊,备忘。

1.1 构造函数初始化

std::shared_ptr<int> pointer(new int(1));

std::shared_ptr<int> pointer1 = pointer;//裸指针

std::shared_ptr<std::string> ss(new std::string("AAA"));

std::shared_ptr<std::string> = std::shared_ptr<std::string>(new std::string("AAA"));

1.2 std::make_shared 初始化

std::shared_ptr<string> p3 = std::make_shared<string>();

std::shared_ptr<string> p2 = std::make_shared<string>("hello");

//auto关键字代替std::shared_ptr,p5指向一个动态分配的空vector<string>
auto p5 = make_shared<vector<string>>();

1.3 reset初始化

std::shared_ptr<int> pointer;
pointer.reset(new int(1));