#include
<algorithm>
std:pair<Out, Out2> partition_copy (In first, In last, Out good, Out2 bad, Pred pred) std:pair<Out, Out2> partition_copy (Exec pol, In first, In last, Out good, Out2 bad, Pred pred) [last, endgood, endbad] = ranges::partition_copy (Range r, Out good, Out2 bad, Pred pred, Proj proj = {}) [last, endgood, endbad] = ranges::partition_copy (In first, In last, Out good, Out2 bad, Pred pred, Proj proj = {})
Kopiert alle Elemente e
des Bereiches [first,last),
auf die pred(e)
zutrifft, in den durch good
angegebenen Bereich,
alle anderen nach bad
.
first | Anfang des Bereiches |
last | Ende des Bereiches |
good | Anfang des Zielbereichs für Elemente mit pred(e) |
bad | Anfang des Zielbereichs für Elemente mit !pred(e) |
pred | Prädikat |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Rückgabewert: make_pair(end_good, end_bad)
mit den Enden beider Zielbereiche bzw. {last,endgood,endbad}
als Struktur mit Elementen namens in, out1, out2
.
#include <algorithm> #include <iostream> #include <string> int main() { std::string s = "HALLO, Welt"; std::string gut; // ins Toepfchen std::string schlecht; // ins Kroepfchen std::partition_copy(begin(s), end(s), std::back_inserter(gut), std::back_inserter(schlecht), [](char c) {return c <= 'Z';}); std::cout << gut << " : " << schlecht << '\n'; }