namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:unique

unique()

#include <algorithm>

For unique (For first, For last) 
For unique (For first, For last, Pred pred) 

Entfernt alle Elemente aus dem Bereich [first,last), die mit ihren Vorgänger übereinstimmen bzw. auf die pred(vorgaenger,x) zutrifft.

Gleichwertige Elemente über größere Distanzen werden nicht erkannt. Ist der Bereich vorsortiert, werden alle Duplikate entfernt.

Der Algorithmus arbeitet so, dass entfernten Elementen und ihren Nachfolgern nachfolgende Werte zugewiesen werden. Damit ist der Algorithmus nicht für assoziative Container einsetzbar. Die Elemente hinter dem neuen Ende werden nicht wirklich entfernt. Dies kann nur ein Container selbst. Von diesem Algorithmus gibt es einen spezielle Version für Listen, die Elemente wirklich entfernt und ein deutlich besseres Zeitverhalten besitzt.

Parameter

first Anfang des Bereichs
last Ende des Bereichs
pred Vergleichsoperation

Ergebnis

Rückgabewert: Iterator hinter das Ende des Bereiches mit den eindeutigen Elementen.

Siehe auch

Beispiel

unique.cpp
#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
  std::string s = "Hallo, Welt";
  std::cout << s << '\n';
  std::sort(begin(s), end(s));
 
  auto neues_ende = std::unique(begin(s), end(s));
  s.erase(neues_ende, s(end));
 
  std::cout << s << '\n';
}
kennen/lib/unique.txt · Zuletzt geändert: 2019-11-20 14:37 von rrichter