Mehrdimensionaler Vector



  • Hallo erstmal,
    ich habe eine Frage zum std::vector.
    Weiß Jemand wie man ein zweidimensionalen Vector erstellt?
    Kann mir Jemand helfen?



  • std::vector< std::vector<int> > my2DVector;
    


  • Wie ist das zu verstehen?
    Ich bräuchte ein zweidimensionales Feld.
    Wie würde ein Beispiel aussehen?



  • Wenn du mit MFC arbeitest und das Datenformat und Anzahl der Spalten fest ist, dann kannst du auch folgendes machen:

    in header:

    typedef struct stDaten
    {
     int daten1;
     CString daten2;
     //hier definierst du also die Daten einer Zeile
    };
    
    class ....
    {
        CArray<stDaten,stDaten&>  m_daten;
    };
    

    mit daten füllen

    stDaten st;
    
     st.daten1 = 234;
     st.daten2 = "Hallo";
     m_daten.Add( st );
    

    und auslesen:

    for (int i=0; i < m_daten.Size(); ++i)
     {
        ausgabe << m_daten[ i ].daten1;
        ausgabe << m_daten[ i ].daten2;
     }
    


  • Aber so hätte ich ja nur eine Spalte mit mehreren Zeilen.
    Ich bräuchte aber mehrer Spalten. 10 Spalten um genau zusein.
    Und was ist mit MFC gemeint?



  • dann erstell dir doch ein mehrdimensionales Array, beispiele gibts im netz mehr als genug und das Beispiel von Softwaremaker lässt sich relativ einfach anpassen

    du schreibst gerade im MFC-Forum was die Microsoft Foundation Classes ist, also ein Framework von Microsoft

    man schaue auch hier



  • Und was ist mit MFC gemeint?

    Tja, dann bist du hier wohl im falschen Unterforum, denn hier gehts um die Klassenbibliothek MFC, die das Programmieren mit C++ unter Windows "einfacher" macht.

    Aber so hätte ich ja nur eine Spalte mit mehreren Zeilen.

    Falsch, mein Beispiel hat zwei Spalten (daten1 als int und daten2 als text).

    Die Struktur enthält deine Spalten mit dem jeweiligen Datentyp:

    typedef struct stDaten
    {
     int spalte1;
     int spalte2;
     int spalte3;
     double spalte4;
     double spalte5;
    };
    

    und hier werden 2 Zeilen angelegt:

    stDaten st;
    
     //Zeile 1
     st.spalte1 = 234;
     ...
     st.spalte5 = 5.6;
     m_daten.Add( st );
    
     //Zeile 2
     st.spalte1 = 123;
     ...
     st.spalte5 = 4.5;
     m_daten.Add( st );
    

Anmelden zum Antworten