C++ std::make_shared是什么怎么用
Posted 软件工程小施同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ std::make_shared是什么怎么用相关的知识,希望对你有一定的参考价值。
shared_ptr<string> p1 = make_shared<string>(10, '9');
shared_ptr<string> p2 = make_shared<string>("hello");
shared_ptr<string> p3 = make_shared<string>();
C++11 中引入了智能指针, 同时还有一个模板函数 std::make_shared 可以返回一个指定类型的 std::shared_ptr
https://www.jianshu.com/p/03eea8262c11
// make_shared example
#include <iostream>
#include <memory>
int main () {
std::shared_ptr<int> foo = std::make_shared<int> (10);
// same as:
std::shared_ptr<int> foo2 (new int(10));
auto bar = std::make_shared<int> (20);
auto baz = std::make_shared<std::pair<int,int>> (30,40);
std::cout << "*foo: " << *foo << '\\n';
std::cout << "*bar: " << *bar << '\\n';
std::cout << "*baz: " << baz->first << ' ' << baz->second << '\\n';
return 0;
}
以上是关于C++ std::make_shared是什么怎么用的主要内容,如果未能解决你的问题,请参考以下文章
C++ 复制指针所指向的对象 make_shared shard_ptr
为啥在使用静态 constexpr 成员构造时 std::make_shared 与 new 不同? [复制]