STL: for_each

来源:互联网 发布:淘宝商品降价通知 编辑:程序博客网 时间:2024/05/17 16:11
#include <algorithm>  #include <iterator>  #include <iostream>  #include <vector>  using namespace std;    class GenByTwo {      public:          GenByTwo (int _seed = 0):seed(_seed){}          int operator() () {return seed += 2;}        private:          int seed;  };    void operate(int &rhs)  {      cout << rhs << " ";      rhs += 1;  }  int main(int argc, char* argv[])  {      vector<int> v(10);      generate(v.begin(), v.end(), GenByTwo(2));      for_each(v.begin(), v.end(), operate);        std::cout << std::endl;    //print      copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));        return 0;  }  

4 6 8 10 12 14 16 18 20 22

5 7 9 11 13 15 17 19 21 23  

#include <iostream>     // std::cin, std::cout#include <iterator>     // std::istream_iterator#include <string>#include <map>#include <fstream>#include <algorithm>#include <ctime>using namespace std;map<string , int> m;void print( const pair<string, int> &r){cout << r.first << "   " << r.second << endl;}void record( const string &s){m[ s ] ++;}int main(){double beginTime = clock();fstream in("test.txt");istream_iterator<string> ii(in);istream_iterator<string> eos;for_each(ii,eos,record);for_each( m.begin(), m.end(), print);double endTime = clock();cout << " time: " << endTime - beginTime << " ms" << endl;return 0;}
time: 66 ms




0 0
原创粉丝点击