#include
<algorithm>
For stable_partition (For first, For last, Pred pred) For stable_partition (Exec pol, For first, For last, Pred pred) Range range::stable_partition (Range r, Pred pred, Proj proj = {}) Range range::stable_partition (For first, For last, Pred pred, Proj proj = {})
Bringt alle Elemente des Bereiches [first,last),
auf die pred(x)
zutrifft nach links,
alle anderen nach rechts.
Die relative Ordnung der Elemente in beiden Gruppen bleibt erhalten.
first | Anfang des Bereiches |
last | Ende des Bereiches |
pred | Prädikat |
proj | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
Rückgabewert: Iterator i
bzw. {i,last}
auf das Ende des Teilbereiches,
auf dessen Elemente pred(x)
zutrifft.
#include <algorithm> #include <iostream> #include <iomanip> #include <string> int main() { std::string s = "ein Beispiel"; std::cout << s << '\n'; auto q = std::stable_partition(begin(s), end(s), [](char c) { return c < 'i'; }); std::cout << s << '\n' << std::setw(q-begin(s)+1) << "^" << " davor kleiner als i\n"; }