Durch "vector< list<Item> > liste;" ->iterieren ? bkomm das nicht hin?



  • hab einen vector der in jedem index eine liste enthält nur wie iteriere ich da durch? also äussere schleife und dann immer die liste ausgeben bei jedem index?

    thx



  • vector< list<Item> > list;
    //...
    for(vector< list<Item> >::iterator vecPos=list.begin();vecPos!=list.end;++i){
        for(list<Item>::iterator listPos=vecPos->begin();listPos!=vecPos->end();++listPos){
            cout<<*listPos
        }
    }
    

    oder:

    vector< list<Item> > list;
    for(int i=0;i<list.size();++i){
        for(list<Item>::iterator Pos=list[i].begin();Pos!=list[i].end();++Pos){
            cout<< *Pos;
        }
    }
    

    darauf kann man aber auch mit etwas nachdenken selber kommen 😉



  • Du gehts einfach jede Liste, die im vector enthalten ist, mit ner Schleife durch
    und legst dafür nen Iterator für die Liste an, mit den du ganz normal durchiterieren kannst.
    Eigentlich alles so wie immer: 🙂

    #include <list>
    #include <vector>
    #include <iostream>
    
    int main()
    {
        std::vector<std::list<int> > vec;
        std::list<int> list1;
        list1.push_back(5);
        list1.push_back(6);
        vec.push_back(list1);
        for(int i = 0; i < vec.size(); ++i)
        {
            std::list<int>::iterator it = vec[i].begin();
            while(it != vec[i].end())
            {
                std::cout << *it;
                ++it;
            }
        }
    }
    


  • passt thx


Anmelden zum Antworten