Syntaxe:
#include <numeric> T accumulate( iterator debut, iterator fin, T val ); T accumulate( iterator debut, iterator fin, T val, BinaryFunction f );
La fonction accumulate calcule la somme de val
avec tous les éléments compris dans la séquence délimitée par [debut
, fin
).
Si une fonction binaire (BinaryFunction) f
est fournie, c'est elle qui est utilisée à la place de l'opérateur + pour calculer la somme.
La fonction accumulate est de complexité linéaire.
Par exemple, le code suivant utilise accumulate pour calculer une somme d'entiers contenus dans un vecteur :
#include <iostream> using std::cout; #include <vector> using std::vector; #include <numeric> using std::accumulate; int main() { vector<int> v; const int START = 1, END = 10; for( int i = START; i <= END; ++i ) v.push_back(i); int sum = accumulate( v.begin(), v.end(), 0 ); cout << "La somme de " << START << " à " << END << " est " << sum << '\n'; }
Articles connexes : adjacent_difference, count, inner_product, partial_sum