Objekte in 2 dimensionalen Vektor speichern



  • Hallo,
    bisher habe ich nicht viel mit c++ gearbeitet, muss jetzt aber eine wichtige Arbeit mit c++ abegeben.
    Dafür würde ich gerne Objekte in einem 2-dimensionalen Vektor speichern.
    (Hintergrund: ich möchte einen Baum erstellen und für jede Ebene sollen alle Knoten in einer Vektorspalte stehen)

    Wenn ich versuche ein neues Objekt, auf das ich später zugreifen will, in diesen 2-dim Vektor einzufügen, kommt von Windows eine "Projekt funktioniert nicht mehr" Meldung.

    Ich möchte ein Objekt der Klasse Knoten erstellen und dieses soll in dem 2 dimensionalen Vektor knotenliste gespeichert werden.
    Nachfolgend kommt mein Versuch einen neu erstellten Knoten in in den ersten der Vektoren zu packen...

    std::vector< std::vector<Knoten> > knotenliste;
    knotenliste[0].push_back(Knoten());
    

    eigentlich möchte ich eine unbekannte Anzahl an Objekten speichern, aber ich scheitere schon daran auch nur eines zu erstellen und einzufügen... 😞

    Ich freue mich über jede Hilfe 🙂



  • Dein erzeugter Vector 'knotenliste' ist ja noch leer. Wie soll daher der Zugriff auf das erste Element ([0]) klappen?

    Du mußt also erst noch einen Vector von Knotenelementen erstellen:

    std::vector<Knoten> vecKnoten;
    knotenliste.push_back(vecKnoten);
    

    Und in diesen Vector kannst du dann deinen neuen Knoten eintragen.

    Alternativ kannst du auch gleich zu Beginn schon mit

    std::vector< std::vector<Knoten> > knotenliste(10);
    

    einen vorinitialisierten Vector mit 10 (oder beliebig vielen anderen) erstellen.

    PS: Und unbedingt einen Debugger benutzen, anstatt einfach nur das Programm direkt während der Entwicklung auszuführen.



  • Super Danke!

    Ich habe versucht das Problem mit dem Debugger zu finden.
    Deshalb bin ich in dem, mittlerweile (für mich) großen, Programm überhaupt erst auf diese Zeile gestoßen...denn in der Konsole gab es überhaupt keine Fehlermeldung
    Nur leider konnte ich mir nicht erklären wieso es in der Zeile nicht funktioniert (bin kein erfahrener debugger 😃 )

    Auf jeden Fall herzlichsten Dank für die Hilfe 🙂 jetzt scheint es zu funktionieren


Anmelden zum Antworten