C++ 如何访问唯一的ptr向量

C++ 如何访问唯一的ptr向量,c++,c++11,C++,C++11,我正在努力掌握智能指针的窍门。我有一个到双数组的唯一_ptr向量,我可以创建它,但无法访问它 vector<unique_ptr<double[]>> arrDoubles; //... unique_ptr<double[]>dataArr(new double[size]); arrDoubles.push_back(move(dataArr)); 提供以下信息: 错误:使用删除的函数“std::unique\u ptr::unique\u ptr(

我正在努力掌握智能指针的窍门。我有一个到双数组的唯一_ptr向量,我可以创建它,但无法访问它

vector<unique_ptr<double[]>> arrDoubles;

//...

unique_ptr<double[]>dataArr(new double[size]);
arrDoubles.push_back(move(dataArr));
提供以下信息:

错误:使用删除的函数“std::unique\u ptr::unique\u ptr(const std::unique\u ptr&)[带_Tp=double;_Dp=std::default\u delete]”

您正在尝试创建一个无法创建的
唯一\u ptr
副本。使用引用

auto& datAr = arrDoubles[0];

因为
auto-datAr=arrbools[0]
尝试复制构造一个
唯一的\u ptr
,并且正如您所知,
std::unique\u ptr
没有复制构造函数。是的,您是对的。
auto& datAr = arrDoubles[0];