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