C++ Tutorial/STL Algorithms Helper/divides

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Use a binary function object divides

<source lang="cpp">#include <iostream>

  1. include <list>
  2. include <functional>
  3. 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;

}</source>

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