vector 2 Dimensional ?



  • Ich habe folgendes Problem. Ich brauche ein 2 Dimensionales Array, dessen Größe ich während der Programmlaufzeit festlegen kann. Mit der Klasse Vector scheints nicht 2 Dimensional zu gehen und bei normalen Arrays muss die Größe immer eine Konstante sein. Ich weiß aber leider erst nach der Benutzereingabe wie Groß das Array sein muss.

    Gibts da irgendeine Lösung ? Habe mit der Suchfunktion nur 1 Dimensionale Arrays gefunden.

    Danke



  • Der vector<T> geht auch zweidimensional:

    vector<vector<T> >

    Der Trick ist das "> >" damit auch wirklich als Template-Argument der innere vector<int> verstanden wird. Denn >> ist bereits wieder ein Operator von C++. Bißchen doof gelöst, aber damit klappt's auch in n Dimensionen.



  • Könntest du mir da bitte mal ein Beispiel für eine Deklaration machen ?
    Hab bis jetzt noch nicht so viel mit Vektoren gearbeitet.

    Danke



  • vector< vector<int> > dim2;
    
    vector<int> temp;
    temp.push_back(1);
    temp.push_back(2);
    
    dim2.push_back(temp);
    
    cout<<dim2[0][0]<<" "<<dim2[0][1];
    

    wobei es uU besser ist, wenn man einen Wrapper drumherum schreibt. Denn ein vector< vector<T> > ist nicht immer leicht zu handhaben. (Kommt aber auf die Anwendung an)



  • Danke, hat hingehauen !


Anmelden zum Antworten