verschachtelte Liste



  • ich habe im Moment folgendes Problem:

    ich brauche ein verschachtelte STL-Liste, also

    list < list < string > > test;
    

    nur wie greife ich nun auf die einzelnen Elemente zu?
    wenn ich beispielsweise so etwas habe

    test.push_front(list<string>());
    test.push_front(list<string>());
    

    und dann die erste Liste in der Liste füllen möchte, z.b.

    test.begin().push_back("1");
    

    Das funktioniert leider nicht. Wie kann ich allgemein auf so verschachtelte Listen zugreifen / hinzufügen löschen?
    Stehe im Moment etwas auf dem Schlauch.

    Gruß
    JackF



  • Harl schrieb:

    ...
    und dann die erste Liste in der Liste füllen möchte, z.b.

    test.begin().push_back("1");
    

    Das funktioniert leider nicht.

    Hallo Jack,

    das

    test.begin()->push_back("1");
    

    sollte gehen. 'test.begin()' liefert Dir den Iterator auf das erste Element. Z.B. mit operator-> kannst Du auf die Methoden des Element her der inneren Liste zugreifen.

    Harl schrieb:

    Wie kann ich allgemein auf so verschachtelte Listen zugreifen / hinzufügen löschen?
    Stehe im Moment etwas auf dem Schlauch.

    Immer genauso wie Du auf eine Liste zugreifst. Was hast Du denn vor?

    Gruß
    Werner



  • Hallo Werner,

    danke schonmal das funktioniert. Probleme habe ich noch bei der Ausgabe, z.b.

    for (list<string>::iterator pos = test.begin()->begin(); pos != test.begin()->end(); pos++);
    {
      cout << (*pos) << endl;
    }
    

    Das funktioniert noch nicht.

    Ich benötige die verschachtelte Liste für die Codegenerierung eines Compilers.
    Bisher habe ich hauptsächlich in anderen Programmiersprachen programmiert, daher ist mir noch nicht jede C++-Syntax so gewohnt.



  • okay hat sich erledigt, das ';' war zu viel ..ich sollte nicht mehr so lange am Stück arbeiten...


Anmelden zum Antworten