1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| // transform algorithm example#include <iostream>// std::cout#include <algorithm>// std::transform#include <vector>// std::vector#include <functional>// std::plusint op_increase (int i) {return ++i; }int main () { std::vector<int> foo; std::vector<int> bar;// set some values:for (int i=1; i<6; i++) foo.push_back (i*10);// foo: 10 20 30 40 50 bar.resize(foo.size());// allocate space std::transform (foo.begin(), foo.end(), bar.begin(), op_increase);// bar: 11 21 31 41 51// std::plus adds together its two arguments: std::transform (foo.begin(), foo.end(), bar.begin(), foo.begin(), std::plus<int>());// foo: 21 41 61 81 101 std::cout <<"foo contains:";for (std::vector<int>::iterator it=foo.begin(); it!=foo.end(); ++it) std::cout <<' ' << *it; std::cout <<'\n';return 0;}
|