Probleme mit variable-sized Array mit 0 vorinitialisieren



  • Hi,

    kannst Du mir vielleicht auch sagen, wie ich einen Vektor der Größe axa anlege?
    Bei einer Dimension ist es mir ja noch klar:
    std::vector<int> feld(a);
    Aber bei 2, oder besser sogar 3 (x,x,2)

    MfG, Ozzy



  • //2-dimensional
    std::vector< std::vector<int> > matrix;
    

    3-dimensional sollte jetzt kein Problem mehr sein.

    Die gleiche Geschichte mit new und delete:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39489.html

    MfG

    GPC



  • Sorry, aber ich habe gerade voll die Denkblockade; vor allem, da ich bisher immer noch mit Array gearbeitet habe. Da ist das ja alles ganz einfach: eine a*a Matrix mit 3 Dimensionen:

    int matrix[a][a][3];
    

    Doch jetzt bekomme ich das bei den Vektoren ums verrecken nicht hin, da ich es mir noch einmal vorstellen kann, wie es aussieht (ich finde, das geht bei Matritzen so gut...)
    Mit 2 Dimensionen habe ich das denke ich so gut wie verstanden, obwohl ich es auch da nicht hinbekomme, dem inneren Vektor eine Dimension zu geben...

    Magst Du mir vielleicht noch ein letztes Mal helfen, wie man den oben geschriebenen Ausdruck in Vektoren umformt???

    MfG, und vielen Dank für Deine Hilfe, Ozzy



  • Hi,

    vector< vector< vector<int> > > matrix(a, a);
    

    das scheint ja schon einmal so etwas zu machen, aber nun bekomme ich die 3 für die 3-te Dimension da nicht mehr rein. Ist das überhaupt richtig so?

    MfG, Ozzy



  • vector<vector<int> > m(DIM1, vector<int>(DIM2));
    


  • So, nun habe ich es so gemacht:

    vector< vector< vector<int> > > matrix(3, (a, a));
    

    scheint auch zu funktionieren; aber Array's sind mir schon lieber.

    Kann mir denn jemand sagen, wie ich jetzt diesen Vektor mit 0 vorinitialisieren kann? Dann bin ich auch wunschlos glücklich...

    MfG, Ozzy



  • Ozzy schrieb:

    Kann mir denn jemand sagen, wie ich jetzt diesen Vektor mit 0 vorinitialisieren kann? Dann bin ich auch wunschlos glücklich...

    Dein vector ist mit 0 vorinitialisiert, ist bei vector Standard.



  • Hi,

    was ich da mit
    vector< vector< vector<int> > > matrix(3, (a, a));
    geschrieben habe, funtkioniert auf jeden Fall nicht!
    Könnt Ihr mir sagen, wie das richtig heißen muss?

    MfG, Ozzy



  • vector<vector<vector<int> > >matrix(DIM1, vector<vector<int> >(DIM2, DIM3));
    


  • Jo, vielen Dank, so funzt es!!!

    Aber noch eine letzte Frage: jetzt möchte ich diesen Vektor wieder in einem Vektor speichern (werden mehrere)
    Davon weiß ich gar keine Dimension, also werde ich die Vektoren auch nur pushen.
    Wie muss ich dann den letzen noch draußenrum packen?
    Reicht ein:

    vector<vector<vector<vector<int> > >>matritzen(DIM1, vector<vector<int> >(DIM2, DIM3));
    

    das aus???

    Und noch eine Frage: wenn ich dann diesen 3-D-Vektor aus dem Vektor herausgeolt habe, wie bestimme ich z.B. Size(DIM2)???

    MfG, Ozzy


Anmelden zum Antworten