namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:transform_inclusive_scan

transform_inclusive_scan()

#include <numeric>

T transform_inclusive_scan (In first, In last, Out result, Binary op, Unary f) 
T transform_inclusive_scan (In first, In last, Out result, Binary op, Unary f, T startwert) 
 
T transform_inclusive_scan (Exec pol, In first, In last, Out result, Binary op, Unary f) 
T transform_inclusive_scan (Exec pol, In first, In last, Out result, Binary op, Unary f, T startwert) 

Beschreibung: Bildet die "Partialsummenfolge" mit den Ergebnissen der Funktion f für alle Werte des Bereiches [first,last) zuzüglich startwert. Die Reihenfolge der "Additionen" op ist nicht festgelegt.

Die Verarbeitung der Werte erfolgt nach dem Rechenschema

             x1   x2   x3   x4  ...  xn
             |    |    |    |        |
             v    v    v    v        v
           f(.) f(.) f(.) f(.)     f(.) 
             |    |    |    |        |
             v    v    v    v        v
startwert -> +   .+   .+   .+       .+    
             |  / |  / |  / |      / |
             v /  v /  v /  v /      v
             s1   s2   s3   s4  ...  sn

Parameter

first Anfang des Bereiches
last Ende des Bereiches
result Anfang des Ergebnisbereiches
op zweistelliges Funktionsobjekt
f einstelliges Funktionsobjekt
startwert Anfangswert der Berechnung
pol parallele Ausführungsart

Ergebnis

Rückgabewert: Iterator auf Ende des Ergebnisbereiches

Siehe auch

Beispiel

transform_inclusive_scan.cpp
#include <functional>
#include <numeric>
#include <iostream>
 
int main()
{
  double arr[] = { 1, 2, 3, 4, 5 };
  double sum[5]; 
 
  std::transform_inclusive_scan(arr, arr+5, sum, std::plus{}, [](auto x){ return x*x; }, 100);
 
  for (double d : sum)
  {
    std::cout << d << ' ';
  }
  std::cout << '\n';   
}
kennen/lib/transform_inclusive_scan.txt · Zuletzt geändert: 2021-07-31 11:52 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki