std::make_shared 中unique()的作用
时间: 2024-01-16 22:16:49 浏览: 76
很抱歉,您提供的引用中并没有提到 `std::make_shared` 中的 `unique()` 方法。不过,`std::make_shared` 是一个用于创建 `std::shared_ptr` 对象的函数模板,它可以在动态内存中分配一个对象并返回一个指向该对象的 `std::shared_ptr` 智能指针。与 `std::shared_ptr` 相比,`std::make_shared` 的优点是可以减少动态内存分配的次数,从而提高程序的性能。
下面是一个使用 `std::make_shared` 创建 `std::shared_ptr` 对象的例子:
```cpp
#include <memory>
#include <iostream>
class Widget {
public:
Widget() {
std::cout << "Widget created." << std::endl;
}
~Widget() {
std::cout << "Widget destroyed." << std::endl;
}
};
int main() {
auto ptr = std::make_shared<Widget>();
return 0;
}
```
在上面的例子中,我们使用 `std::make_shared` 创建了一个 `Widget` 对象,并将其封装在一个 `std::shared_ptr` 智能指针中。由于 `std::make_shared` 会在动态内存中分配一个对象,因此我们不需要手动调用 `new` 运算符来分配内存。当 `ptr` 智能指针超出作用域时,它会自动释放内存。
阅读全文