c++ transform

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

 

posted @ 2013-08-09 21:22  OpenSoucre  阅读(374)  评论(0编辑  收藏  举报