Inhaltsverzeichnis

remove_copy_if()

#include <algorithm>

Out remove_copy_if (In first, In last, Out result, Pred pred) 
Out remove_copy_if (Exec pol, In first, In last, Out result, Pred pred) 
 
[last, res] = ranges::remove_copy_if (Range r, Out result, Pred pred, Proj proj = {}) 
[last, res] = ranges::remove_copy_if (In first, In last, Out result, Pred pred, Proj proj = {}) 

Kopiert den Bereich [first,last) nach [result,…) und entfernt dabei alle Elemente, auf die pred(x) zutrifft.

Parameter

first Anfang des Bereiches
last Ende des Bereiches
result Anfang des Zielbereiches
pred einstelliges Prädikat
proj einstelliger Funktor (Vorgabe = std::identity)
pol parallele Ausführungsart

Rückgabewert: Iterator result+N auf das Ende des Zielbereiches bzw. {last,result+N} mit N kopierten Elementen als Struktur mit Elementen namens in, out.

Siehe auch

copy_if(), remove(), remove_if(), remove_copy().

Beispiel

remove_copy_if.cpp
#include <algorithm>
#include <functional>
#include <iterator>
#include <string>
#include <iostream>
 
int main()
{
  std::string s = "Hallo, Welt";
  std::string t;
  std::cout << s << '\n';
 
  std::remove_copy_if(begin(s), end(s),
                      std::back_inserter(t), [](char c) { return c < 'l'; });
 
  std::cout << t << '\n';
  return 0;
}