vector mehrdimensional
-
Hallo!
Kennt jemand einen Link, der mir erklärt, wie ich am besten
dynamische Matrizen implementiere?vector<vector<int> > wollte ich bisher verwenden, macht mir aber Probleme.
Warum geht z.B. nichtvector<vector<int> > matrix; ... //mit mit Werten füllen ... cout<< (matrix[4])[5];
Dankeschön,
Raphael
-
was geht nicht?
int zeile = 10,spalte = 5; vector<vector<int> > matrix ; matrix.assign(zeile, vector<int>(spalte)) ;
-
der Tip assign zu verwenden ist super!
im Moment die Ausgabe:
spalte = 5; zeile = 10; int ausg = (matrix[spalte])[zeile]; cout << ausg <<endl;
liefert:
cannot convert `std::vector<int, std::allocator<int> >' to `int' in assignmentGrüße!
-
cout<<matrix[x][y]; int ausg=matrix[x][y];
Und wenn dir die vector<vector<foo> >schreibweise nicht transparent genug ist:
template<class foo, std::size_t dims> class multi_vec :public std::vector<multi_vec<foo,dims-1> >{}; template<class foo> class multi_vec<foo,1> :public std::vector<foo>{}; template<class foo> class multi_vec<foo,0>;
-
Morgen,
raphael2 schrieb:
der Tip assign zu verwenden ist super!
im Moment die Ausgabe:
spalte = 5; zeile = 10; int ausg = (matrix[spalte])[zeile]; cout << ausg <<endl;
liefert:
cannot convert `std::vector<int, std::allocator<int> >' to `int' in assignmentGrüße!
das liegt an deiner Klammerung. Dort steht dann, wenn X eine Zahl ist:
X[zeile]mfg
v R
-
entschuldige, dass ist mir noch nicht ganz klar:
wenn ich vector<vector<foo> > fooMatrix habe und
fooMatrix[4] abfrage (und da ist auch wirklich was im Speicher),
bekomme ich dann nicht vector<foo> als Rückgabewert?Auf vector<foo> könnte ich dann nochmal den []-Operator
anwenden und bekäme foo myfoo = (fooMatrix[4])[5] ...?
-
raphael2 schrieb:
entschuldige, dass ist mir noch nicht ganz klar:
wenn ich vector<vector<foo> > fooMatrix habe und
fooMatrix[4] abfrage (und da ist auch wirklich was im Speicher),
bekomme ich dann nicht vector<foo> als Rückgabewert?Auf vector<foo> könnte ich dann nochmal den []-Operator
anwenden und bekäme foo myfoo = (fooMatrix[4])[5] ...?Autsch, ja fehler von mir. Dann faellt mir keinen plausible Erklaerung ein.
mfg
v R