Warum geht unique auf char nicht richtig?
-
http://en.cppreference.com/w/cpp/algorithm/unique
(Beispiel unten)Warum wird bei der Ziffernfolge jede Zahl nur einmal ausgegeben, bei dem string "wanna ..." die Buchstaben doppelt?
Bzw. wenn man nur "[](char l, char r){return l == r}" kommt "wana .." raus. Also es werden nur Buchstaben herausgefiltert die unmittelbar hintereinander kommen.
'a' ist jedoch noch immer 2 mal drin.Bei int gibt es jede Zahl nur einmal
-
Benutzername_ schrieb:
Bei int gibt es jede Zahl nur einmal
Weil vor dem unique() ein sort() gemacht wird, so dass gleiche Zahlen auch nebeneinander stehen.
unique macht kein komplettes unique auf die ganze Range sondern haut nur die nebeneinander stehenden doppelten Elemente raus.
Deshalb ist der Vorgang idR sort() und dann unique().
-
// remove duplicate elements (normal use)
vs
// remove consecutive spaces
-
oh, danke das sort hab ich überlesen.
Zu warm heute