namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:partition_copy

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


Vorhergehende Überarbeitung
kennen:lib:partition_copy [2023-10-14 12:19] (aktuell) – [Ergebnis] rrichter
Zeile 1: Zeile 1:
 +====== partition_copy() ======
 +''#include'' [[..:include:algorithm]]
 +
 +<code cpp>
 +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 = {}) 
 +</code>
 + 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''   | [[..:include:execution|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 ====
 +<code cpp 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';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki