阅读量:0
在C++中,std::make_shared
是一个模板函数,用于创建一个std::shared_ptr
智能指针并初始化它指向的对象。make_shared
函数接受任意数量的参数,用来初始化指向的对象。
使用make_shared
函数可以减少内存分配的次数,因为它会在一次内存分配中同时分配智能指针对象和指向的对象。
下面是一个使用make_shared
函数的示例:
#include <memory> int main() { // 创建一个指向int的shared_ptr auto ptr = std::make_shared<int>(10); // 创建一个指向自定义对象的shared_ptr struct MyObject { int data; }; auto obj_ptr = std::make_shared<MyObject>(); obj_ptr->data = 20; return 0; }
在上面的示例中,std::make_shared<int>(10)
创建了一个指向整数的std::shared_ptr
,std::make_shared<MyObject>()
创建了一个指向自定义对象MyObject
的std::shared_ptr
。