namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:include:algorithm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
kennen:include:algorithm [2020-10-25 10:33] – angelegt - Externe Bearbeitung 127.0.0.1kennen:include:algorithm [2023-10-14 12:24] (aktuell) – [<algorithm>] rrichter
Zeile 19: Zeile 19:
 Als ''Range'' werden Ausdrücke ''r'' bezeichnet, auf die ''%%std::ranges::begin(r)%%'' und ''%%std::ranges::end(r)%%'' angewendet werden kann. Als ''Range'' werden Ausdrücke ''r'' bezeichnet, auf die ''%%std::ranges::begin(r)%%'' und ''%%std::ranges::end(r)%%'' angewendet werden kann.
 Projektionen ''proj(e)''((genauer: ''std::invoke(proj,e)'')) sind Funktionen, Funktionsobjekte, Lambdaausdrücke oder Adressen wie ''&Person::name'' von Bestandteilen eines zusammengesetzten Objekts, die auf ein Element ''e'' eines Bereichs ''r'' angewendet werden können. Die Standardvorgabe ''std::identity{}'' liefert ''e'' selbst. Projektionen ''proj(e)''((genauer: ''std::invoke(proj,e)'')) sind Funktionen, Funktionsobjekte, Lambdaausdrücke oder Adressen wie ''&Person::name'' von Bestandteilen eines zusammengesetzten Objekts, die auf ein Element ''e'' eines Bereichs ''r'' angewendet werden können. Die Standardvorgabe ''std::identity{}'' liefert ''e'' selbst.
-Steht an Stelle eines Ergebnistyps ''​[x,​y] ='',​ liefert der Algorithmus eine zusammengesetzte Struktur, die mittels eines "​structured bindings"​ zerlegt werden kann:  +Steht an Stelle eines Ergebnistyps ''​[x,​y] ='',​ liefert der Algorithmus eine zusammengesetzte Struktur, die mittels eines "​structured bindings"​ zerlegt werden kann: 
  
 <code cpp> <code cpp>
 auto [x,y] = f(...); auto [x,y] = f(...);
 +
 +auto result = f(...);
 +std::cout << result.name1 << ' ' << result.name2; 
 </code> </code>
 +Alternativ kann auf die Bestandteile der Rückgabestruktur per Namen zugegriffen werden.
 +Dazu muss man allerdings deren Namen kennen. 
 +Diese werden in der Beschreibung der Algorithmen aufgeführt.  
 +
 ===== Nichtmodifizierende Algorithmen ===== ===== Nichtmodifizierende Algorithmen =====
 ==== Ausführen und Zählen ==== ==== Ausführen und Zählen ====
Zeile 550: Zeile 557:
 Out remove_copy (In first, In last, Out result, T wert)  Out remove_copy (In first, In last, Out result, T wert) 
 Out remove_copy (Exec pol, In first, In last, Out result, T wert)  Out remove_copy (Exec pol, In first, In last, Out result, T wert) 
- 
-Out remove_copy_if (In first, In last, Out result, Pred pred)  
-Out remove_copy_if (Exec pol, In first, In last, Out result, Pred pred)  
  
 [last, res] = ranges::remove_copy (Range r, Out result, T wert, Proj proj = {})  [last, res] = ranges::remove_copy (Range r, Out result, T wert, Proj proj = {}) 
 [last, res] = ranges::remove_copy (In first, In last, Out result, T wert, Proj proj = {})  [last, res] = ranges::remove_copy (In first, In last, Out result, T wert, Proj proj = {}) 
 +</code>
 +[[..:lib:remove_copy|Beschreibung]]:
 + Kopiert den Bereich [first,last) nach [result,...) 
 + und entfernt dabei alle Elemente ''e'' mit dem angegebenen ''wert'' bzw. 
 + auf die ''pred(proj(e))'' zutrifft.
 +
 +<code cpp>
 +Out remove_copy_if (In first, In last, Out result, Pred pred) 
 +Out remove_copy_if (Exec pol, In first, In last, Out result, Pred pred) 
  
 [last, res] = ranges::remove_copy_if (Range r, Out result, Pred pred, Proj proj = {})  [last, res] = ranges::remove_copy_if (Range r, Out result, Pred pred, Proj proj = {}) 
 [last, res] = ranges::remove_copy_if (In first, In last, Out result, Pred pred, Proj proj = {})  [last, res] = ranges::remove_copy_if (In first, In last, Out result, Pred pred, Proj proj = {}) 
 </code> </code>
-[[..:lib:remove_copy|Beschreibung]]:+[[..:lib:remove_copy_if|Beschreibung]]:
  Kopiert den Bereich [first,last) nach [result,...)   Kopiert den Bereich [first,last) nach [result,...) 
  und entfernt dabei alle Elemente ''e'' mit dem angegebenen ''wert'' bzw.   und entfernt dabei alle Elemente ''e'' mit dem angegebenen ''wert'' bzw. 
kennen/include/algorithm.1603618414.txt.gz · Zuletzt geändert: 2020-10-25 10:33 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki