namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:reduce

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:reduce [2021-07-31 11:47] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== reduce() ======
 +''#include'' [[..:include:numeric]]
 +
 +<code cpp>
 +T reduce (In first, In last) 
 +T reduce (In first, In last, T startwert) 
 +T reduce (In first, In last, T startwert, Binary op) 
 +
 +T reduce (Exec pol, In first, In last) 
 +T reduce (Exec pol, In first, In last, T startwert) 
 +T reduce (Exec pol, In first, In last, T startwert, Binary op)
 +</code>
 + Bildet die "Summe" vom (optionalen) ''startwert'' mit allen Werten des Bereiches [first,last). Die Reihenfolge der "Additionen" ''op'' ist nicht festgelegt.
 +
 +<code cpp>
 + startwert  + x1  + x2  + x3  + ... ---> Ergebnis
 +</code>
 + bzw. führt eine "verallgemeinerte Summation" mit einem zweistelligen Funktor durch.
 +
 +<code cpp>
 +              x1    x2    x3    
 +              |         |
 +              v         v
 + startwert -> op -> op -> op -> ... ---> Ergebnis
 +</code>
 +==== Parameter ====
 +| ''first'' | Anfang des Bereiches|
 +| ''last''  | Ende des Bereiches|
 +| ''startwert'' | Anfangswert der Berechnung |
 +| ''op''    | zweistelliges Funktionsobjekt |
 +| ''pol''   | [[..:include:execution|parallele Ausführungsart]] |
 +==== Ergebnis ====
 +Rückgabewert: Summe bzw. "verallgemeinerte Summe",
 +bei leerem Bereich der ''startwert''.
 +
 +==== Siehe auch ====
 +[[accumulate]],
 +[[transform_reduce]],
 +[[..:stl#Funktionsadapter]].
 +
 +==== Beispiel ====
 +<code cpp reduce.cpp>
 +#include <functional>
 +#include <iostream>
 +#include <numeric>
 +#include <vector>
 +
 +int main()
 +{
 +  std::vector v {1.0, 2.0, 3.0};
 +  auto sum = std::reduce(begin(v), end(v));
 +  std::cout << sum << '\n';
 +  auto product = std::reduce(begin(v), end(v), 10.0, std::multiplies{});
 +  std::cout << product << '\n';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki