Itterator



  • Hi,
    ich habe eine Klasse, in der ich eine STL-Liste habe.
    Ich möchte jetzt von außerhalb auf diese Liste mittels eines Itterators zugreifen. Wie muß ich da vorgehn.

    Die Liste wurde wie folgt erstellt:

    class my
    {
    ...
    public:
    list<int> *mylist;
    mylist=new list<int>[5]; //5 int Listen hinter einem Pointer 
    ...
    };
    

    Außerhalb der Klasse will ich jetzt auf eine der Listen zugreifen, aber ich bekomme da immer die Meldung, daß kein Opperator definiert ist.

    int i=0;
    my handle;
    list<int>::iterator itt;
    for( itt = handle.mylist[i].begin(); itt != handle.mylist[i].end(); itt++ )
    {
      ...
    }
    


  • Du kannst den Iterator oder die Liste über eine Funktion zurückgeben:

    const list<type> & GetList();
    list<type>::const_iterator GetIterator();

    aber imho macht es wenig sinn eine liste mit new anzulegen.
    da du über list<type>::push_back(type t) jederzeit neue elemente einfügen kannst.

    Devil



  • Ich wollte über das new hinter einem Pointer mehrer listen ablegen.
    Da sollte es doch keine Probleme geben oder?



  • wieso machst du dann nicht ein

    list<int*> mylist;
    //oder
    list< list<int> > myList;
    

    Devil



  • Stimmt eigentlich. 🙄 (war mir sich in diesem Moment zu einfach 😃 )


Anmelden zum Antworten