Demonstrating the generic accumulate algorithm with a reverse
iterator
#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
*/
Related examples in the same category