make_unique是干什么用的
时间: 2023-06-30 19:05:31 浏览: 78
`make_unique` 是一个 C++11 标准引入的函数模板,用于在堆上创建并返回一个智能指针 `unique_ptr`,它可以自动管理一个对象的生命周期,并且在对象不再被需要时自动删除它。
使用 `make_unique` 可以避免手动调用 `new` 和 `delete`,从而减少内存泄漏和错误的几率,同时也使代码更加简洁和易于阅读。例如,下面的代码用 `make_unique` 创建了一个 `int` 类型的动态数组:
```c++
std::unique_ptr<int[]> arr = std::make_unique<int[]>(10);
```
这将在堆上创建一个包含 10 个 `int` 元素的数组,并返回一个指向该数组的 `unique_ptr` 智能指针。当 `unique_ptr` 超出作用域时,它会自动删除数组,从而避免了内存泄漏。
相关问题
std::make_unique与g2o::make_unique
std::make_unique是C++14标准引入的一个函数模板,用于创建一个独占所有权的智能指针std::unique_ptr的对象。它接受一个可变数量的参数,并返回一个指向动态分配的对象的unique_ptr。
g2o::make_unique是g2o库中定义的一个函数模板,也用于创建一个独占所有权的智能指针g2o::unique_ptr的对象。它与std::make_unique的功能类似,但在C++11标准下提供了相同的功能。
这两个函数模板的作用是为了方便地创建独占所有权的智能指针对象,避免手动管理内存和资源释放的麻烦。它们在使用上非常类似,只是在不同的库中定义。
make_shared和make_unique
make_shared和make_unique都是C++标准库中的函数模板,用于创建智能指针对象。它们的作用是方便地创建一个动态分配的对象,并将其管理在一个智能指针中。
make_shared用于创建一个shared_ptr对象,它采用引用计数的方式管理所指向的对象。当有一个新的shared_ptr
阅读全文