Selbst erstellten Objekt in einem Vektor speichern

cibal_gina

Grünschnabel
Hi

Ich habe leider noch nicht viel Erfahrung mit C++, insbes mit dem Objektorienterten Teil davon. So hoffe ich hier Hilfe für mein Problem zu finden.

Eine Matrix, die wie folgt in einer Datei gespeichert ist soll ausgelesen werden und dann sollen die Operatoren geschrieben werden, usw.
Datei Matrix.txt:
Code:
  4 2 3
  1 1 3.2
  2 1 -2
  3 2 1
sagt folgendes aus: Es handelt sich um eine 4x2 Matrix mit 3 Elementen ungleich 0 (das steht in der ersten Zeile), die in den darauffolgenden Zeilen stehen.
Das Element A[1,1] =3.2, und A[1,2] = 0; usw.
In der Datei stehen ab der 2-ten Zeile somit Informationen über Zeile, Spalte und den Wert.

Ich wollte das so machen, dass ich mir ein Objekt "Werte" erstelle und die einzelnen Objekte dann in einem Vektor zu speichern. Dann hätte ich alle Informationen der Matrix in einem Vektor gespeichert.

Soweit die Theorie. Nun stosse ich aber schon beim Auslesen der Daten auf Probleme.

Wenn ich mir ein Objekt "Werte" erstelle.
Code:
  class Werte {
     unsigned int i;
     unsigned int j;
     double value;
  };
Wie kann ich dann die Werte aus der Datei einlesen und sie direkt in einen Vektor "Matrix" speichern?
Code:
  int main() {
     Werte w;
     vector<Werte> matrix;
     unsigned int m, n;
     double z;
     datei.open(dateiname);
     datei >> m;
     datei >> n;
     datei >> z;
     for( unsigned int k = 0; k < z; k++ ) {
  	  datei >> w.i; // Werte i
  	  datei >> w.j; // Werte j
  	  datei >> w.value; // Werte value
  	 Matrix.push_back( w );
     }
  }
Ich bin mir ziemlich unsicher ob das wa sich mir da gedacht habe stimmt.
Hat jemand vielleicht einen Vorschlag wie ich das Problem lösen könnte? Und wie kann ich später auf die einzelnen Elemente Zugreifen? Mit welchem Befehl kann ich z.B. den Wert 2,2 in der Matrix ändern?
Ich wäre sehr dankbar für die Hilfe.
 
also ich weis nicht ganz worauf du raus willst.
aber wenn du eine matrix hast [4,4] udn du willst nummer [2,3] ansteuern udn verändern , dann machst du das so.

int matrix[4,4];
matrix [2,3] = 5

jetzt hast du dem wert 2,3 5 zugewiesen.
weis nicht ob dir das hilft
 
Nein, das meine ich nicht.
Es handelt sich um eine andere Speicherungsmethode der Matrix. Die die Du meinst ist diese 2 dimensionale Vektordarstellung.
Bei mir geht es zunächst um die Speicherung von 3 Elementen in einem Objekt, welcher dann in einem Vektor gespeichert werden soll und um den Zugriff auf die einzelnen Elemente des Objektes.
Das ganze hängt insofern mit der Matrix zusammen, dass diese Elemente die Position bzw. den Wert darstellen.
 
Zurück