在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
。