2 dimensionaler vector, wie Anzahl "Zeilen" und "Spalten" ermitteln?



  • Moin, Moin,

    ich kann ja mit

    vector<vector<string> > test;
    

    einen 2 dimensionalen Vector erstellen. In diesen kann ich Daten in der Form

    test[i][j]=irgendwas;
    

    schreiben. Soweit hab ich das schon begriffen.

    Bei einem einfachen Vector kann ich Mittels

    test.size()
    

    die Anzahl der Elemente feststellen, ist mir auch klar.

    Aber wie mach ich es bei einem 2 dimensionalen, um zu einer bestimmten Zeile die Anzahl der Elemente zu kriegen?
    Oder auch mit der

    push_back()
    

    Anweisung einen Wert in einer bestimmten Zeile anzuhängen?

    push_back(i)(j)
    

    klappt ja nicht so wirklich.



  • In diesen kann ich Daten in der Form C/C++ Code:

    test[i][j]=irgendwas;
    

    schreiben.

    Falls die Entsprechende Zeile und Spalte vorhanden ist ja.

    Bei einem einfachen Vector kann ich Mittels C/C++ Code:

    test.size()
    

    die Anzahl der Elemente feststellen, ist mir auch klar.

    Aber wie mach ich es bei einem 2 dimensionalen, um zu einer bestimmten Zeile die Anzahl der Elemente zu kriegen?

    test[i].size()

    Dementsprechende auch das puschen:

    test[i].push_back(foo)



  • Geier0815 schrieb:

    Bei einem einfachen Vector kann ich Mittels

    test.size()
    

    die Anzahl der Elemente feststellen, ist mir auch klar.

    Aber wie mach ich es bei einem 2 dimensionalen, um zu einer bestimmten Zeile die Anzahl der Elemente zu kriegen?

    test[i].size();
    

    Geier0815 schrieb:

    Oder auch mit der

    push_back()
    

    Anweisung einen Wert in einer bestimmten Zeile anzuhängen?

    push_back(i)(j)
    

    klappt ja nicht so wirklich.

    test[i].push_back(wert);
    

    MfG Jester



  • Ich ware schneller. Ich war schneller. :p

    🤡



  • Du Sack! 🤡



  • Ich danke euch schon mal so weit.
    Vielleicht könnt ihr mir auch sagen, weshalb ich bei dem fogenden Aufruf einen Fehler beim Ausführen bekomme:

    vector<vector<string> > test;
      test[0][0]="Name";
      test[0][1]="Vorname";
      test[0][2]="Strasse";
      cout<<test[0].size();
    

    Kompillieren läßt es sich ohne Probleme, aber wenn ich es dann ausführen will, bekomm ich so eine Fehlermeldung:

    10 [main] spar 1056 handle-exceptions: Exception: STATUS_ACCES_VIOLATION
    4503 [main] spar 1056 open_stackdumpfile: Dumping stack trace to spar.exe.stackdump



  • Die Antwort findest du in meiner erstn Antwort:

    helium schrieb:

    Falls die Entsprechende Zeile und Spalte vorhanden ist ja.

    Die Elemente, die du da bechreibst existieren gar nicht!



  • Die Exception kriegst Du, weil die Vektoren alle noch Größe 0 haben und Du auf nicht existierende Elemente zugreifst. Du mußt die Vektoren schon noch mittels push_back oder resize vergrößern.

    MfG Jester



  • *Hmpf*



  • 😃


Anmelden zum Antworten