Duplikate aus vector entfernen
-
Hallo,
ich möchte aus einem std::vector doppelte Einträge entfernen.
Funktioniert da folgendes:std::vector<...> vect; std::vector<...>::iterator it; it = std::unique(vect.begin(), vect.end()); vect.erase(it, vect.end());
oder muss ich den vector vorher noch sortieren.
Will das nicht erst ausprobieren und wollte fragen, ob einer sagen kann: "Das funktioniert!"Grüße Verge
-
unique entfernt nur benachbarte gleiche Elemente (sonst wäre eine Komplexität von O(N) auch nich erreichbar).
-
Oder auf deutsch: Nein, es entfernt nicht alle Duplikate aus deinem vector. Dazu musst du den vector entweder sortieren oder die eine eigene Funktion schreiben (oder besorgen - eine mögliche Lösung findest du in meinem Artikel "Aufbau der STL - Teil 3").