Inhaltsverzeichnis

unique_copy()

#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.

Parameter

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

Ergebnis

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.

Siehe auch

unique().

Beispiel

unique_copy.cpp
#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';
}