Matrizen
-
Moin,
Wie speichere ich am einfachsten die Elemente einer Matrix (in einer Klasse), damit ich auch mit [][] darauf zugreifen kann.
ich hatte erst an die Möglichkeit gedacht, sie als float** zu speichern und mit dem Operator dann die Zeile float* zurückzugeben.
gibts noch bessere Möglichkeiten???
-
als 2d vector der vector klasse vielleicht?
-
hm....dann müsste ich beim operator[] wieder den vector zurückgeben........aber anderst wirds nicht gehen....
-
Doch, geht anders. Musst mal die Forensuche benutzen.
-
ich hab jetzt mit der Suchfunktion noch folgende Möglichkeit gefunden:
Jetzt frag ich mich, wies da mit der effizienz aussieht, da ja bei jedem Zugriff eine Instanz der Klasse Zeilenproxy erstellt würde, (oder fängt der Compiler das ab???)class Vector2D {//ungetestet private: Vector data;//der macht copy-ctor, dtor und op= public: class Zeilenproxy { private: Vector2D& v2d; int zeile; public: Zeilenproxy(Vector2D& _v2d,int _y) :v2d(_v2d),y(_y) { } double& operator[](int x) { return v2d.data[y*SIZEX+x];//kacke, nur demo } } ZeilenProxy operator[](int y) { return Zeilenproxy(*this,y); } };