Elemente in std::list tauschen
-
Hi,
ich habe eine std::list, welche Pointer auf Objekte enthält. In dieser möchte ich jetzt zwei aufeinanderfolgende Elemente tauschen, so dass die ihre Position in der Liste wechseln. Aktuell habe ich das so, dass ich die Listenitteratoren it1 und it2 auf die beiden Positionen halte, und diese dann miteinander tausche:
std::list<entityBase*>::iterator it1,it2 ... it1=m_entityList.begin(); it2=it1; it2++; ... swapEntity=*it1; *it1=*it2; *it2=swapEntity;Da Fehler in solchen Listengeschichten gerne mal erst sehr viel später und an dubios anderen Stellen aufschlagen: ist das so richtig? Tauscht mir das tatsächlich die beiden Elemente innerhalb der Liste?
Danke!
-
-
Zusatz zur obigen Antwort: Dein Code selber ist auch richtig.
-
OK, danke!