Zweidimensionalen vector auslesen?



  • Hallo,

    Google hat mir nicht geholfen und Bücher leider auch nicht.

    Ich möchte einen zweidimensionalen Vector auslesen.

    So liest man ja einen eindimensionalen Vector aus:

    vector<QString> v1;
    
    for(std::vector<QString>::iterator it = v1.begin(); it != v1.end(); ++it)
    {
      // *it ist der Wert
    }
    

    Mein Vector sieht aber so aus:

    std::vector< std::vector<QString> > v1;
    

    Wie lese ich nun alles aus dem Vector aus?



  • Offenbar hast Du die Struktur des ganzen noch nicht begriffen, ansonsten würdest Du jetzt nicht nachfragen, da wird Dir auch nicht helfen weiterzukommen, wenn ich den Code hinschreibe.
    Wo ist Dein Problem? Warum kannst Du von dem eindimensionalen Fall nicht auf den Mehrdimensionalen schließen? Woran hapert es gerade?



  • Problem erledigt. Habe gar keinen mehrdimensionalen Vector gebraucht.

    Aber so geht das dann mit dem zweidimensionalem Vector:

    for(std::vector< std::vector<QString> >::iterator it = v.begin(); it != v.end(); ++it)
    {
      for(std::vector<QString>::iterator it2 = (*it).begin(); it2 != (*it).end; ++it2)
      {
        // *it2 ist der Wert
      }
    }
    

    Ich wusste nicht, wie man Funktionen in derefenzierten Zeigern von Objekten nutzt. Das war mein Problem. Aber durch ausprobieren habe ich es rausgefunden.



  • fürsnächste mal:

    it->begin()
    

    sieht doch hübscher aus, oder? 🙂


Log in to reply