STL - sort, unique_copy etc.
-
Also ich haben einen vector "woerter" von Strings mit Wörtern. Jetzt sollen doppelte Exemplare aussortiert werden und die Wörter sollen sortier werden. Das Ergebnis soll dann in einem zweiten Vector "result" stehen.
Wieso führt das
unique_copy(woerter.begin(), woerter.end(), back_inserter(result)); sort(result.begin(), result.end());
zu einem anderen Ergebnis wie
sort(woerter.begin(), woerter.end()); unique_copy(woerter.begin(), woerter.end(), back_inserter(result));
Das erste schmeißt nicht alle doppelten Vorkommen raus, das zweite funktioniert wunderbar.
Dürfte doch keinen Unterschied machen oder?
Mfg, smasher1985
-
unique funktioniert nur auf sortierten Mengen. Alles andere wäre zu ineffizient. Es entfernt duplikate nur, wenn mehrere gleiche hintereinander stehen.
-
Weil unique_copy nur aufeinanderfolgende Duplikate beim Kopieren auslässt.
-
Ok, danke. Alles klar. Schade eigentlich, denn an sich wäre es ja sinnvoller erst zu sortieren wenn Duplikate weg sind, denn dann muss man ja weniger sortieren. Aber ist wohl etwas naiv gedacht, wenn das Duplikate entfernen aufwändiger ist...danke..
Mfg, smasher1985