Mega Code Archive

 
Categories / C++ / Algorithm
 

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  */