Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » mehrdimensionale vektoren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
16.04.2005, 20:45 Uhr
~doppler
Gast



C++:
vector<vector<vector<int> > > myvector;



bedeutet, dass myvector ein ein vector ist, bei dem jedes element ein vector<vector<int> > ist. Der Ausdruck myvector[i] liefert also einen vector<vector<int> > zurück.

Mit

C++:
for(unsigned i=0; i < myvector_3D.size(); i++) myvector_3D[i].resize(8);



änderst du die Länge jedes dieser Elemente auf 8, d.h. die neuen Einträge sind <vector<vector<int> > der Länge 8. Die Elemente dieser Einträge sind aber immernoch vom Typ vector<int> und haben die Länge 0, daher führt das letzte [2] zu einem Speicherzugriffsfehler. (eigentlich schon das erste [5], da myvector_3D die Länge 3 hat, wegen der ersten Zeile


C++:
vector< vector< vector<int> > > myvector_3D(3);



Mit resize() änderst du die Länge des Vektors. Wenn der Vektor vorher länger war, wird das Ende abgeschnitten, wenn er kürzer war, werden am Ende default-elemente eingefügt. In deinem Fall also vector<int>() (ein vector der Länge 0 aus ints).

Mit size() fragst du die Länge des vector ab.

push_back() fügt am Ende ein Element an, erhöht also die Länge des vector um 1.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
16.04.2005, 20:54 Uhr
~doppler
Gast


Du kannst auch mit


C++:
vector<vector<vector<int> > >
my_vector_3D(6,vector<vector<int> >(10,vector<int>(3,123)));



eine 6x10x3-Matrix mit Einträgen 123 erzeugen. Der erste Eintrag im Konstruktor ist die Länge des Vector, der zweite ist der Wert, der in die Elemente eingetragen wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: