unique_ptr使用案例
时间: 2023-05-10 07:00:14 浏览: 55
unique_ptr是C++11标准中的一个智能指针,主要用于管理动态分配的对象,它可以自动调用delete释放内存,避免程序出现内存泄漏的问题。下面列举几个unique_ptr使用案例:
1.管理动态分配的对象:使用unique_ptr可以更方便地管理动态分配的对象,比如以下代码:
```
unique_ptr<int> p(new int(10)); //创建一个unique_ptr对象管理一个动态分配的int类型的对象
cout << *p<< endl; //输出该对象所指向的值
*p = 20; //修改该对象所指向的值
```
2.防止内存泄漏:使用unique_ptr可以有效地避免对象释放不及时导致的内存泄漏,比如以下代码:
```
unique_ptr<int> p(new int(10));
//使用unique_ptr后,即使忘记释放内存,也不会导致内存泄漏
```
3.用于容器类:unique_ptr也可以用于存放容器中的对象,比如以下代码:
```
vector<unique_ptr<int>> v; //定义vector容器存放unique_ptr对象
v.push_back(unique_ptr<int>(new int(10))); //将unique_ptr对象存入vector中
```
4.管理动态分配的数组:与普通指针不同的是,unique_ptr也可以管理动态分配的数组,比如以下代码:
```
unique_ptr<int[]> p(new int[5]()); //创建一个unique_ptr对象管理一个动态分配的int类型的数组
for (int i = 0; i < 5; ++i) {
p[i] = i;
}
```
总之,unique_ptr是一种十分方便实用的智能指针,在动态内存管理和避免内存泄漏的问题上具有很大的优势,可以广泛应用于各种C++开发领域。