unique_ptr c++代码
时间: 2023-07-30 22:10:54 浏览: 37
下面是一个使用 `unique_ptr` 的 C++ 代码示例:
```c++
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> p(new int(10)); // 使用 unique_ptr 动态分配内存
std::cout << *p << std::endl; // 输出内存中的值
return 0;
}
```
在这个例子中,我们使用 `std::unique_ptr` 对一个 int 类型的内存进行动态分配,然后输出内存中的值。`std::unique_ptr` 是一个智能指针,它可以确保在离开作用域时自动释放分配的内存,避免内存泄漏和野指针的问题。在使用 `std::unique_ptr` 时,我们只需要在定义时将动态分配的内存地址传递给它,然后就可以通过指针操作内存了。在离开作用域时,`std::unique_ptr` 会自动释放内存,无需手动调用 `delete`。
相关问题
unique_ptr C++代码
下面是一个使用 `unique_ptr` 的 C++ 代码示例:
```c++
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> p(new int(10)); // 使用 unique_ptr 动态分配内存
std::cout << *p << std::endl; // 输出内存中的值
return 0;
}
```
在这个例子中,我们使用 `std::unique_ptr` 对一个 int 类型的内存进行动态分配,然后输出内存中的值。`std::unique_ptr` 是一个智能指针,它可以确保在离开作用域时自动释放分配的内存,避免内存泄漏和野指针的问题。在使用 `std::unique_ptr` 时,我们只需要在定义时将动态分配的内存地址传递给它,然后就可以通过指针操作内存了。在离开作用域时,`std::unique_ptr` 会自动释放内存,无需手动调用 `delete`。
unique_ptr c++函数
`std::unique_ptr` 是 C++11 标准库中的一个智能指针,用于管理动态分配的内存。它提供了对指针所指向的对象的唯一所有权。当 `unique_ptr` 对象被销毁时,它所拥有的对象也会被销毁。
以下是一个简单的使用 `unique_ptr` 的示例代码:
```
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> ptr(new int(42));
std::cout << *ptr << std::endl; // 输出 42
*ptr = 100;
std::cout << *ptr << std::endl; // 输出 100
return 0;
}
```
在这个示例中,我们首先创建了一个 `unique_ptr<int>` 对象 `ptr`,并将一个动态分配的 `int` 类型的对象的地址赋值给它。我们可以通过解引用 `ptr` 来访问这个动态分配的 `int` 对象,并修改它的值。当程序退出 `main` 函数时,`ptr` 对象被销毁,它所拥有的 `int` 对象也会被销毁。
需要注意的是,`unique_ptr` 对象不能被复制,只能被移动。这是因为 `unique_ptr` 对象拥有唯一的对象所有权,如果被复制,就会出现多个 `unique_ptr` 对象拥有同一个对象的情况,这显然是不合理的。因此,我们只能通过移动构造函数或移动赋值运算符将一个 `unique_ptr` 对象的所有权转移给另一个对象。