namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:accumulate

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:accumulate [2019-11-20 14:20] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== accumulate() ======
 +''#include'' [[..:include:numeric]]
 +
 +<code cpp>
 +T accumulate (In first, In last, T startwert) 
 +T accumulate (In first, In last, T startwert, Binary op) 
 +</code>
 + Bildet die Summe von ''startwert'' mit allen Werten x des Bereiches [first, last)
 +
 +<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 |
 +==== Ergebnis ====
 +Rückgabewert: Summe bzw. "verallgemeinerte Summe",
 +bei leerem Bereich der ''startwert''.
 +
 +==== Siehe auch ====
 +[[for_each]],
 +[[reduce]],
 +[[..:stl#Funktionsadapter]].
 +
 +==== Beispiel ====
 +<code cpp accumulate.cpp>
 +#include <numeric>
 +#include <functional>
 +#include <iostream>
 +
 +int main()
 +{
 +  double arr[] = { 1, 2, 3, 4, 5 };
 +  std::cout << "Summe   = " 
 +            << std::accumulate(arr, arr+5, 0.0) << '\n';
 +  std::cout << "Produkt = " 
 +            << std::accumulate(arr, arr+5, 1.0, std::multiplies<double>()) << '\n';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki