如何访问unique_ptr的向量

时间:2017-09-20 00:45:47

标签: c++ c++11

我正试图掌握智能指针。我有一个unique_ptr到double数组的向量,我可以创建,但无法访问它。

vector<unique_ptr<double[]>> arrDoubles;

//...

unique_ptr<double[]>dataArr(new double[size]);
arrDoubles.push_back(move(dataArr));

现在,

auto datAr = arrDoubles[0];

给出以下内容:

error: use of deleted function ‘std::unique_ptr<_Tp [], _Dp>::unique_ptr(const std::unique_ptr<_Tp [], _Dp>&) [with _Tp = double; _Dp = std::default_delete<double []>]’

1 个答案:

答案 0 :(得分:6)

您正在尝试创建无法完成的unique_ptr副本。使用参考。

auto& datAr = arrDoubles[0];