Mega Code Archive

 
Categories / C++ / Algorithm
 

Use a binary function object divides

#include <iostream> #include <list> #include <functional> #include <algorithm> using namespace std; int main() {   list<double> vals;   list<double> divisors;   for(int i=10; i<100; i+=10) vals.push_back((double)i);   for(int i=1; i<10; i++) divisors.push_back(3.0);   cout << "Original contents of vals:\n";   list<double>::iterator p = vals.begin();   while(p != vals.end()) {     cout << *p << " ";     p++;   }   cout << endl;     p = transform(vals.begin(), vals.end(),                 divisors.begin(), vals.begin(),                 divides<double>()); // call function object   cout << "Divided contents of vals:\n";   p = vals.begin();   while(p != vals.end()) {     cout << *p << " ";     p++;   }   return 0; } /*  Original contents of vals: 10 20 30 40 50 60 70 80 90 Divided contents of vals: 3.33333 6.66667 10 13.3333 16.6667 20 23.3333 26.6667 30  */