stand::unique_ptr
时间: 2023-07-02 13:08:17 浏览: 48
`std::unique_ptr`是C++11标准库中的一个智能指针类型,用于管理动态分配的对象。它是一个轻量级的RAII(资源获取即初始化)类,具有独占所有权的特性,即它所指向的对象不能被另外一个`std::unique_ptr`或其他指针所拥有。当`std::unique_ptr`被销毁时,它会自动释放其所管理的对象。
`std::unique_ptr`的使用方式与裸指针类似,可以通过`operator*`和`operator->`来访问所管理的对象,也可以使用`get()`方法获得所管理对象的指针。与裸指针不同的是,`std::unique_ptr`可以通过`std::move`方法进行移动语义操作,从而实现资源的转移和管理权的转移。此外,`std::unique_ptr`还可以指定一个删除器(deleter)来自定义对象的释放方式,例如使用`delete[]`释放数组类型的对象。
下面是一个使用`std::unique_ptr`管理动态分配的整型数组的示例代码:
```c++
#include <memory>
#include <iostream>
int main() {
std::unique_ptr<int[]> arr(new int[10]);
for (int i = 0; i < 10; ++i) {
arr[i] = i;
}
for (int i = 0; i < 10; ++i) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
```