Ich versuche, den Sinn von intelligenten Zeigern zu bekommen. Ich habe einen Vektor von unique_ptr zu Double-Array, die ich erstellen kann, aber nicht darauf zugreifen kann. JetztWie greife ich auf einen Vektor von unique_ptr zu
vector<unique_ptr<double[]>> arrDoubles;
//...
unique_ptr<double[]>dataArr(new double[size]);
arrDoubles.push_back(move(dataArr));
,
auto datAr = arrDoubles[0];
gibt folgendes:
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 []>]’
Weil 'Auto Datar = arrDoubles [0];' Versuche, eine 'unique_ptr' kopieren-Konstrukt, und, wie Sie wissen,' std :: unique_ptr' nicht Kopierkonstruktoren hat. –
Ja, Sie haben Recht. –