Vraag Verplaats lijstelement naar het einde in STL


Ik heb al de lijstwijzer van CDrawObject *

std::list<CDrawObject*> elements;

Hoe ik een element naar het einde van de lijst kan verplaatsen. ik snap het STL-algoritmen Referentie maar ik vind deze operaties niet. Hoe ik het kan doen?


26
2018-02-06 08:37


oorsprong


antwoorden:


Gebruik de lijstmethode splice ()

void list::splice ( iterator position, list<T,Allocator>& x, iterator i );

Zet iterator i van lijst x in de huidige lijst op positie "positie"

Dus om het naar het einde te verplaatsen

x.splice( x.end(), x, iter );

(ze kunnen beide dezelfde lijst of verschillende lijsten zijn zolang de lijst waaruit het item is verplaatst hetzelfde type heeft, zowel T als Allocator)


49
2018-02-06 09:12



EEN std::list is een dubbel gelinkte lijst, wat betekent dat je geen willekeurige toegang tot element hebt n. U moet kan het element verwijderen en vervolgens gebruiken push_back.


4
2018-02-06 08:50



Verwijder het en voeg het toe aan je lijst.


0
2018-02-06 08:45