// Demonstrating the generic accumulate algorithm with a reverse // iterator #include #include #include #include // For accumulate using namespace std; int main() { cout << "Demonstrating generic accumulate algorithm with " << "a reverse iterator." << endl; float small = (float)1.0/(1 << 26); float x[5] = {1.0, 3*small, 2*small, small, small}; // Initialize vector1 to x[0] through x[4]: 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 sum = accumulate(vector1.begin(), vector1.end(), (float)0.0); cout << "Sum accumulated from left = " << sum << endl; float sum1 = accumulate(vector1.rbegin(), vector1.rend(), (float)0.0); cout << "Sum accumulated from right = " << (double)sum1 << endl; return 0; }