#include
<algorithm>
Out unique_copy (In first, In last, Out result) Out unique_copy (In first, In last, Out result, Binary pred) Out unique_copy (Exec pol, In first, In last, Out result) Out unique_copy (Exec pol, In first, In last, Out result, Binary pred) [last,res] = ranges::unique_copy (Raneg r, Out result, Binary pred = {}, Proj proj = {}) [last,res] = ranges::unique_copy (In first, In last, Out result, Binary pred = {}, Proj proj = {})
Kopiert den Bereich [first,last) nach [result,…)
und entfernt alle Elemente e
aus dem Bereich [first,last),
die mit ihren Vorgänger übereinstimmen bzw.
auf die pred(proj(vorgaenger),proj(e))
zutrifft.
Gleichwertige Elemente über größere Distanzen werden nicht erkannt. Ist der Quellbereich vorsortiert, werden alle Duplikate entfernt.
first | Anfang des Quellbereichs |
last | Ende des Quellbereichs |
result | Anfang des Zielbereichs |
pred | zweistelliges Prädikat (Vorgabe = equal_to ) |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Rückgabewert: Iterator result+N
hinter das Ende des Zielbereiches bzw. {last,result+N}
mit N
kopierten Elementen
als Struktur mit Elementen namens in, out
.
#include <algorithm> #include <iostream> #include <iterator> #include <string> int main() { std::string s = "Hallo, Welt"; std::string u; std::cout << s << '\n'; std::sort(begin(s), end(s)); std::unique_copy(begin(s), end(s), std::back_inserter(u)); std::cout << u << '\n'; }