スマートポインタの2次元配列を動的に割り当てる必要がありますが、その構文がわかりにくいです。私は、これは動的にする必要があります。スマートポインタの2D配列を動的に割り当てるための構文
std::unique_ptr<someClass> myArray[size1][size2];
だから私は、私は型へのポインタへのポインタを作成して理解して何から:
someClass** myArray; //actaully the type is std::unique_ptr<someClass> but I'll just keep it simple
そして、それを割り当てるために、私はない:
myArray* = new someClass*[size1];
for(int i = 0; i < size1; i++)
myArray[i] = new someClass[size2];
しかしこれはスマートポインタを使用しないので、後で手動で削除する必要があり、これらのポインタをスマートポインタにする方法がわかりません。
タイプがのstd :: unique_ptrをですが、その後、私は型へのポインタへのポインタを必要とするので、私は試してみました:
std::unique_ptr<std::unique_ptr<std::unique_ptr<someClass>>> myArray;
しかし、この後、私はそれを割り当てるだろうかに迷ってしまいました。誰かが私を助けてくれますか?
1D 'vector>は、スマートポインタの2D配列に適しています。 –
juanchopanza
また、2次元配列はダブルポインタではありません。 –
C++では、 "Xの2次元配列"は 'std :: vector>'と綴られています。 –