Auf Listen von Listen zugreifen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auf Listen von Listen zugreifen

    Guten Tag,

    ich moechte eine liste erstellen in der wiederum listen von int stehen.
    ich habe auch hier im forum gefunden wie man eine solche liste anlegt, aber leider schienen es alle fur logisch zu halten wie man darauf zugreift.

    std::list< std::list <int> > myList;

    Was ich bisher weiss beschraenkt sich auf listen von int und mit denen komme ich gut klar.

    Wie kann ich also eine liste in der liste der listen anlegenen (es ist genauso gemeint auch wenn es komisch klingt javascript:emoticon) und neue elemente in der liste der int anlegen und auslesen ?
    Und wie sortiere ich die listen von int ( den sort() befehl kenne ich ,nur wie muss ich das anwenden wenn die listen wieder in listen stehen ) ?



    Es ginge bestimmt auch einfacher, aber ich wollte gern die STL und sort() verwenden.

    Vielen Dank
  • Listen in Listen erstellen, Listen von Listen, list<list&

    Guten Tag,

    für die Hilfe wollte ich mich bedanken indem ich mal die Lösung, bei der mir ein Freund geholfen hat, online stelle, der Tipp oben war zwar hilfreich aber ich wußte nicht das man Sachen wie bei *** schreiben kann.

    Bin mir nicht sicher ob alle include nötig sind kann es aber im Moment nicht testen.

    Also ich hoffe das hilft etwas, da ich es damals nirgends finden konnte.

    Quellcode

    1. #include <list>
    2. #include <iterator>
    3. #include <stdlib.h>
    4. #include <iostream>
    5. #include <cstdlib>
    6. list< list<int> > charList;
    7. for( int i=0; i < 10; i++ ) {
    8. charList.push_front( *(new list<int>) );
    9. charList.front().push_front(rand()); // ***
    10. charList.front().push_front(rand());
    11. charList.front().push_front(rand());
    12. charList.front().push_front(rand());
    13. charList.front().push_front(rand());
    14. charList.front().push_front(rand());
    15. }
    16. // Display the list
    17. list< list<int> >::iterator theOuterIterator;
    18. int i = 0;
    19. for( theOuterIterator = charList.begin(); theOuterIterator != charList.end(); theOuterIterator++ )
    20. {
    21. theOuterIterator->sort();
    22. list<int>::iterator theInnerIterator;
    23. cout << "Liste: " << i << endl;
    24. for( theInnerIterator = theOuterIterator->begin();
    25. theInnerIterator != theOuterIterator->end(); theInnerIterator++ )
    26. {
    27. cout << *theInnerIterator << endl;
    28. }
    29. i++;
    30. }
    Alles anzeigen
  • Re: Listen in Listen erstellen, Listen von Listen, list<l

    "stefan7" schrieb:

    Quellcode

    1. charList.push_front( *(new list<int>) );

    Willkommen in der wunderbaren Welt der Memory Leaks :wink: .

    Gruß void
    "Probleme kann man niemals mit derselben Denkweise lösen,
    durch die sie entstanden sind." (A. Einstein)
  • Stimmt, es fehlt das delet, aber war erstmal froh mit den Listen klar zu kommen, wenn ich komplet fertig bin schreib ihr hier das Program nochmal rein.

    Falls jemand mag kann er auch gern schreiben wie man die listen wieder loescht, hat bei mir noch nicht geklappt.

    genauer gesagt habe ich nicht heraus gefunden ob dann auch die listen innerhalb der liste wieder geloescht sind.
  • Hallo,

    hier mal ein Beispiel.

    Listen anlegen und anschließend die Listen durchlaufen und die Werte
    ausgeben.

    Quellcode

    1. #pragma warning ( disable : 4786 )
    2. #include <iostream>
    3. #include <list>
    4. int main()
    5. {
    6. std::list< std::list< int > > myIntList;
    7. std::list< int > myFirstList;
    8. myFirstList.push_back( 5 );
    9. myFirstList.push_back( 6 );
    10. myFirstList.push_back( 2 );
    11. myFirstList.push_back( 1 );
    12. myIntList.push_back( myFirstList );
    13. std::list< int > mySecondList;
    14. mySecondList.push_back( 15 );
    15. mySecondList.push_back( 16 );
    16. mySecondList.push_back( 12 );
    17. mySecondList.push_back( 11 );
    18. myIntList.push_back( mySecondList );
    19. std::list< std::list< int > >::iterator iter ( myIntList.begin() );
    20. std::list< std::list< int > >::iterator iterEnd ( myIntList.end() );
    21. while( iter != iterEnd )
    22. {
    23. std::list< int >& firstList = *iter;
    24. std::list< int >::iterator iterList ( firstList.begin() );
    25. std::list< int >::iterator iterListEnd ( firstList.end() );
    26. while( iterList != iterListEnd )
    27. {
    28. int& iValue = *iterList;
    29. std::cout << "Value: " << iValue << std::endl;
    30. ++iterList;
    31. }
    32. ++iter;
    33. }
    34. return 1;
    35. }
    Alles anzeigen