Inhaltsverzeichnis

partition_copy()

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

Parameter

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

Ergebnis

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.

Siehe auch

partition(), stable_partition().

Beispiel

partition_copy.cpp
#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';
}