STL struct->vecotr->map Loader Ldraw Lego



  • Hi

    habe eine Klasse, die mehrere Structs mit beispielsweise den Attributen
    x,y und filename enthält.

    hier einfache Werte gewählt:

    dynamische Vector Arrays zeigen auf die Struktur
    die wiederum die Werte enthalten
    alles innerhalb einer Klasse
    im private: Bereich

    struct Point
    {
      matrix m[16];
      string filename;
    }
    Point Punkt
    typedef vector<Point> listPunkte
    listPunkte Punkte
    
    nun hab ich mehrere Vector Arrays 
    ohne den Typ filename ( nur Koordinaten) 
    
    struct Egal
    {
      int x;
      int y;
    }
    Egal soegal
    typedef vector<Egal> listEgal
    listEgal nochegaler
    
    nun lese ich von einer Datei ein, das geschiet 
    in der public Methode load("Pfad der Datei")
    und speichere die Werte ab
    
    ins >> Punkt.x >> Punkt.filename;
    Punkte.push_back(Punkt);
    

    filenames können wiederum Koordinaten enthalten:

    filename
    matrix ->refferenz auf nächstes filename
    x                               matrix ->refferen auf nächstes filename
    y                               x                               matrix ->nächtes..
    .                               y                                 x
    .                               .                                 y
    .                               .                                 .
    

    bei Matrix handelt es sich um eine Transformationsmatrix die dem Subfile zugeordnet ist

    mein Problem die Matrix richtig zu zu ordnen / anzuwenden

    dachte mir alle Vectoren in einer Map speichern, nur wie geht das?
    dachte mir so?

    typedef map<string, Klasse> Map
    

    aber wie durchlaufe ich die map?
    so dass ich weis, wann welches Subfile dran kommt mit welchen Koordinaten.
    wie bekomme ich den Schlüssel Key[] zum durchlaufen?
    so dass ich weis wo was drin steht?

    Wie kann ich das alles in einem Tree anzeigen?
    Dachte mir alle Subfiles in einer Refferenzdatei abzuspeichern
    und die dann mittels map durchzulaufen? aber wie ?

    Danke für eure Hilfe

    Gruß Matthias



  • Also zum durchiterieren gibt es ja den Iterator.

    Um etwas zu finden gibt es ja map::find () oder den [] - Operator.

    http://www.cplusplus.com/reference/stl/map/

    Auf den Iterator kannst du dann first und second anwenden, um an die Daten zu kommen.

    Oder wo ist genau dein Problem?



  • als erstes
    - wie bringe ich die Vector Arrays in die Map ?
    - wie erzeuge ich den Key?
    ...



  • MatthiasA schrieb:

    als erstes
    - wie bringe ich die Vector Arrays in die Map ?
    - wie erzeuge ich den Key?
    ...

    http://www.cplusplus.com/reference/stl/map/

    Schau da mal insert an.
    Oder auch den [] - Operator. Wenn dir die Seite nicht hilft google doch einfach mal nach std::map. Da findest einenen Haufen, wie man mit der map umgeht. Ist eigl. recht einfach.



  • Wenn dir die Seite nicht hilft google doch einfach mal nach std::map.

    als ob ich das nicht selbst wüsste 😃



  • MatthiasA schrieb:

    als ob ich das nicht selbst wüsste 😃

    Dann solltest du dein Wissen nutzen. 😉



  • Hilft ihm lieber anstatt Sprüche zu klopfen..



  • 😞 schrieb:

    Hilft ihm lieber anstatt Sprüche zu klopfen..

    Ehm Hallo? - Ich habe in meinem ersten Post die Antwort geschrieben. Und auch, wo er sich weiterbilden kann, damit er solche Fragen nicht mehr stellen muss.

    Ich werde sicher nicht hier die ganze Funktionalität von std::map erklären, wenn bereits alles auf der Seite steht, die ich gepostet habe.

    Im übrigen hilfst du ihm mit deinem Beitrag auch nicht wirklich weiter.



  • hab hier ein passendes gefunden
    so baue ich das nun auf! ( so ähnlich)

    http://www.codersource.net/published/view/330/stl_map.aspx

    Gruß Matthias


Anmelden zum Antworten