Antwort
Sie haben zwei Alternativen. Vektor von Vektoren oder ein einzelner Vektor (siehe @Bob __'s Kommentar).
Der Vorteil des Vektorenvektors ist C++ - Güte (Iteratorgrenzenprüfung usw.). Der Nachteil ist eine höhere Kosten für Konstruktion/Kopie. rows+1
Vektoren müssen konstruiert (oder kopiert) werden.
Der Vorteil des einzelnen Vektors der Zeilen * Spaltengröße besteht darin, dass Sie nur eine Vektorkonstruktion benötigen (oder bei Bedarf kopieren). (Ein weiterer Leistungsvorteil ist die Cache-Lokalität der Daten.)
So können Sie die [row] [col] -Syntax beibehalten.
const int rows = 6;
const int cols = 6;
vector<int> x(rows*cols);
//enable using [row][col] syntax
auto a_int = reinterpret_cast<int (*)[rows]>(x.data());
// cout << a_int[row][col] << '\n';
[link] (http://stackoverflow.com/questions/823562/multi-dimensional-vector) _answer dieser Frage ist auf diesem Link ... – CLIX159
Haben Sie das überhaupt probiert? – SirGuy
Ja, Sie [können] (https://ideone.com/Pb9KoE), aber es könnte besser sein, einen 1D-Vektor zu deklarieren: 'vector arr (36);' und auf seine Elemente zuzugreifen, die den richtigen Index berechnen: 'arr [i * 6 + j] 'anstelle von 'arr [i] [j]'. –
'@RadouaneROUFID' Danke .. Obwohl ich 'Multidimensional Vector' nicht verstanden habe .so bitte werden Sie einen besseren Weg bieten, um alle Zweifel auszuräumen. – CLIX159