Inhaltsverzeichnis

stable_partition()

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

Parameter

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

Ergebnis

Rückgabewert: Iterator i bzw. {i,last} auf das Ende des Teilbereiches, auf dessen Elemente pred(x) zutrifft.

Siehe auch

is_partitioned(), partition(), partition_copy(), partition_point().

Beispiel

stable_partition.cpp
#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";
}