1.unique_ptr指针的基本使用!
#include <memory>
#include <iostream>
using namespace std;
int main()
{
// 在这个范围之外,unique_ptr 被释放
{
auto i = unique_ptr<int>(new int(10)); // 创建一个 unique_ptr 管理的动态分配内存
cout << *i << endl; // 输出 10
} // 离开作用域时,unique_ptr `i` 自动释放内存
// 使用 std::make_unique 进行初始化
auto w = std::make_unique<int>(10);
cout << *(w.get()) << endl; // 输出 10
// 尝试复制 unique_ptr 会导致编译错误
// auto w2 = w; // 编译错误:unique_ptr 不支持复制语义
// unique_ptr 支持移动语义
auto w2 = std::move(w); // w 的所有权转移给 w2
cout << ((w.get() != nullptr) ? (*w.get