Von Liste zu Liste
-
Hi,
folgendes Problem, ich habe 2 Listen mit Namen
std::list<std::string> namen_eins; namen_eins.push_back ("alfonso"); namen_eins.push_back ("diabloi"); namen_eins.push_back ("fritz"); std::list<std::string> namen_zwei; namen_zwei.push_back ("fred"); namen_zwei.push_back ("holla die waldfee!");Meine Frage ist jetzt: wie bekomme ich jetzt die Daten von "namen_eins" nach "namen_zwei" ohne die von "namen_zwei" zu überschreiben?
Also sogesehen einfach "hinten dran" hängen.
Gibt leider keine Funktion append.

-
for(std::list<std::string>::iterator it= namen_zwei.begin(); it != namen_zwei.end(); it++) namen_eins.push_back(*it);aber ich glaube es gibt sogar ne funktion append oder so...
-
Hallo,
So z.Bsp.
namen_zwei.insert(namen_zwei.end(), namen_eins.begin(), namen_eins.end());
-
Willst du die Elemente kopieren oder umschichten? Kopieren kannst du mit copy() und einem back_inserter, umschichten mit splice():
//kopieren: std::copy(namen_eins.begin(),namen_eins.end(),back_inserter(namen_zwei)); //die manuelle Version für Puristen: for(std::list<std::string>::iterator p=namen_eins.begin();p!=namen_eins.end();++p) namen_zwei.push_back(*p); //umschichten: namen_zwei.splice(namen_zwei.end(),namen_eins);