Mehrdimensionale Iteratoren?



  • Hi,

    ich glaub ich bin grad mal völlig auf dem Holzweg 🙂

    Leider gelingt es mir nicht, mehrdimensional mit Iteratoren zu arbeiten.

    Ich habe folgenden Sample-Code:

    //***********************************************************
        /* class event_midi */
    
        vector<vector<deque<event_midi> > >::iterator iter;
        for(iter=events_active.begin();iter != events_active.end(); ++iter )
        {
            //iter->run();     //void run() ist in class event_midi
            //(*iter).run();
        }
    
    //***********************************************************
    

    Ich möchte mich aber gern durch das deque navigieren. wie würdet ihr das problem lösen oder angehen? 😕

    Gruss
    T.Dreipunkte



  • So wie immer bei mehrdimensionalen Listen:

    for(auto i(events_active.begin()); i != events_active.end(); ++i)
    {
    	for(auto j(i->begin()); j != i->end(); ++j)
    	{
    		for(auto k(j->begin()); k != j->end(); ++k)
    		{
    			k->run();
    		}
    	}
    }
    

    Ohne auto brauchst Du typedefs für alle Iteratortypen, sonnst wird es unleserlich.
    Alternativ solltest Du noch mal darüber nachdenken, ob die Datenstruktur so wirklich der Weisheit letzter Schluss ist.



  • for(auto outer = cont.begin(); outer != cont.end(); ++outer)
        for(auto inner = outer->begin(); inner != outer->end(); ++inner)
    


  • 314159265358979 schrieb:

    for(auto outer = cont.begin(); outer != cont.end(); ++outer)
        for(auto inner = outer->begin(); inner != outer->end(); ++inner)
    

    hehe^^ du hast den zweiten vector vergessen :>

    for(auto outer = cont.begin(); outer != cont.end(); ++outer) // outer -> vec<vec<deque>> iterator
        for(auto inner1 = outer->begin(); inner1 != outer->end(); ++inner1) // inner1 -> vec<deque> iterator
            for(auto inner2 = inner1->begin(); inner2 != inner1->end(); ++inner2) // inner2 -> deque iterator
    


  • Du hast Deutsch vergessen.



  • Skym0sh0 schrieb:

    [...]

    Wie schön, dass wir jetzt quasi drei mal die gleiche Antwort haben...



  • ja nee is kla. ich wollt nur PI mal ein bisschen flamen :>
    der weiss ja sonst immer alles besser, jetzt liegt er mal genauso falsch, wie er selbst anderen immer ankreidet.

    aber ja tachyon, du hast recht flott, die passende lösung präsentiert. dir gebührt der respekt 🙂



  • ja nee is kla. ich wollt nur PI mal ein bisschen flamen :>

    Lass einfach das Kindergartenverhalten.



  • Skym0sh0 schrieb:

    ja nee is kla. ich wollt nur PI mal ein bisschen flamen :>

    Dann lern's bevor du's an mir testest, könnte in die Hose gehen.



  • Na vielen Dank,

    hab doch nur Mittag gegessen...

    Tachyon schrieb:

    Alternativ solltest Du noch mal darüber nachdenken, ob die Datenstruktur so wirklich der Weisheit letzter Schluss ist.

    Da hab ich schon drüber nachgedacht, als es nicht funktionierte - aber ich wollts dennoch wissen.

    Und danke für die nebenläufige Unterhaltung. 😉


Anmelden zum Antworten