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

Home
C++ Tutorial
 1 Language Basics 2 Data Types 3 Operators statements 4 Array 5 Development 6 Exceptions 7 Function 8 Structure 9 Class 10 Operator Overloading 11 Pointer 12 File Stream 13 template 14 STL Introduction 15 string 16 vector 17 list 18 bitset 19 set multiset 20 valarray 21 queue stack 22 deque 23 map multimap 24 STL Algorithms Modifying sequence operations 25 STL Algorithms Non modifying sequence operations 26 STL Algorithms Binary search 27 STL Algorithms Sorting 28 STL Algorithms Merge 29 STL Algorithms Min Max 30 STL Algorithms Iterator 31 STL Algorithms Heap 32 STL Algorithms Helper
 C++ Tutorial » STL Algorithms Helper » accumulate
32.3.3.Demonstrating the generic accumulate algorithm with a reverse iterator
 ```#include  #include  #include  #include   // 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 vector1(&x[0], &x[5]);    cout << "Values to be added: " << endl;   vector::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