Zweidimensionales vector-Array
-
Hallo zusammen!
Wie baue ich mir eigentlich ein 2-D Vektor Array und greife dann auf einzelne Speicherplätze zu.
Weil so einfach wie mit int[][] isses ja nicht
...habe ich bemerkt...
Grüsse!
-
schau dir mal std::vector an
-
Meinst du jetzt
std::vector
oder ein einfaches Array?Im Falle eines einfaches C-Arrays:
int Array[3][4]; // Deklaration/Definition; Array[2][0] = 7; // Zuweisung an einzelne Elemente
Bei
std::vector
kannst du mitpush_back
arbeiten. Schau sonst in einer Referenz (z.B. cplusplus.com) nach.
-
ich glaube es ist so etwa wie das hier:
vector<vector<int> > items ( 5, vector<int> ( 5 ) );
aber wie rufe ich dann z.B. .push_back() für die 2. Dimension richtig auf?
-
items[1].push_back (..);
-
Mit
std::vector::push_back()
hängst du ein Element hinten an den Vector dran. Willst du das bei einem 2D-Vector wirklich? Dann wären ja einige Spalten oder Zeilen länger.Falls ja: Entweder mit
operator[]
oderat()
,
alsoitems[0].push_back(32); // oder items.at(0).push_back(32);
Und da gibts noch die Möglichkeit mit den Iteratoren (z.B. in For-Schleifen).
-
hab rausgefunden...für alle die`s interessiert
z.B. für ein 10x10 vector-array:
vector<vector<int> > items; vector <int> temp; int i = 10; temp.resize(i, 1); items.resize(i,temp);
...aber trotzdem Danke für die Tips
-
Was hat dir das jetzt gebracht? Die Lösung vorhin hat doch genau das selbe bewirkt und war kürzer?
-
JustAnotherNoob schrieb:
Was hat dir das jetzt gebracht? Die Lösung vorhin hat doch genau das selbe bewirkt und war kürzer?
Also wenn die Grösse bereits bei der Erstellung bekannt ist, geht das noch einfacher:
std::vector<std::vector<int>> v (10, std::vector<int> (10,2));
-
das war doch die Lösung vorhin?
ich glaube es ist so etwa wie das hier:
C/C++ Code:
vector<vector<int> > items ( 5, vector<int> ( 5 ) );Du initialisierst das doch nur noch auf 2(warum eigentlich 2?)
-
JustAnotherNoob schrieb:
Du initialisierst das doch nur noch auf 2
Habe nicht den ganzen Thread gelesen.
Dann frage ich mich jetzt, warum er es nicht wieder so macht.(warum eigentlich 2?)
DAS ist aber eine andere Frage.
- Das ist _die_ Zahl.