#include
<algorithm>
Out copy_if (In first, In last, Out result, Pred pred) Out copy_if (Exec pol, In first, In last, Out result, Pred pred) [last, res] = ranges::copy_if (Range r, Out result, Pred pred, Proj = proj = {}) [last, res] = ranges::copy_if (In first, In last, Out result, Pred pred, Proj = proj = {})
Kopiert die Werte e
des Bereiches [first,last) nach [result,…), die das Prädikat pred(proj(e))
erfüllen.
first | Anfang des Quellbereiches |
last | Ende des Quellbereiches |
result | Anfang des Zielbereiches |
pred | einstelliges Prädikat |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Quell- und Zielbereich sollten nicht überlappen.
Rückgabewert: Iterator auf das Ende des Zielbereiches bzw. {last, out + N}
wobei N
die Anzahl der Elemente des Quellbereichs ist, auf die pred(proj(e))
zutrifft,
als Struktur mit Elementen namens in, out
.
#include <algorithm> #include <iostream> int main() { char str[] = "aBcDeFgH"; char ziel[] = "--------"; std::cout << str << '\n'; // aBcDeFgH std::copy_if(str, str+8, ziel, [](char c) { return c <= 'Z'; } ); std::cout << str << '\n'; // BDFH---- }