Demonstrating the generic accumulate algorithm with a reverse iterator : accumulate « STL Algorithms Helper « C++ Tutorial






#include <iostream>
#include <vector>
#include <cassert>
#include <numeric>  // For accumulate
using namespace std; 

int main()
{
  float small = (float)1.0/(1 << 26);
  float x[5] = {1.0, 3*small, 2*small, small, small};
  
  vector<float> vector1(&x[0], &x[5]); 

  cout << "Values to be added: " << endl;

  vector<float>::iterator i;
  cout.precision(10);

  for (i = vector1.begin(); i != vector1.end(); ++i)
    cout << *i << endl;
  cout << endl;

  float sum1 = accumulate(vector1.rbegin(), vector1.rend(),(float)0.0);
  cout << "Sum accumulated from right = " << (double)sum1 << endl;

  return 0;
}
Values to be added:
1
4.470348358e-008
2.980232239e-008
1.490116119e-008
1.490116119e-008

Sum accumulated from right = 1.000000119








32.3.accumulate
32.3.1.Calculate sum of elements in a vector
32.3.2.Algorithm: Use accumulate to calculate product
32.3.3.Demonstrating the generic accumulate algorithm with a reverse iterator
32.3.4.Illustrating the generic accumulate algorithm with predicate
32.3.5.The total of the elements in a vector