C++ 函数对象

这里记录一个使用函数对象的例子:

 1 // ConsoleApplication25.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <vector>
 6 #include <string>
 7 #include <iostream>
 8 #include <functional>
 9 #include "stdlib.h"
10 #include "time.h"
11 #include <algorithm>
12 using namespace std;
13 
14 
15 int main()
16 {
17     vector<int> vect;
18 
19     cout << "Simple :" << endl;
20 
21     plus<int> add;
22     cout << add(10, 20) << endl;
23 
24     cout << "for vector:" << endl;
25 
26     srand(time(NULL));
27     for (size_t i = 0; i < 10; ++i)
28     {
29         vect.push_back(rand());
30     }
31     sort(vect.begin(),vect.end(), greater<int>());
32     for (vector<int>::iterator begin = vect.begin(); begin != vect.end(); ++begin)
33     {
34         cout << *begin << endl;
35     }
36 
37     int final_count = count_if(vect.begin(), vect.end(), bind2nd(greater<int>(),1024));
38     cout << "Final greater than 1024 is : " << final_count << endl;
39     
40     system("PAUSE");
41     return 0;
42 }
View Code

 

其中要点如下:

  1. 生成随机数的方法:必须包含#include "stdlib.h",#include "time.h",这两个一个作为时间种子,一个生成随机数字。
  2. 使用标准库算法,必须包含#include <algorithm>。
  3. 使用标准库的函数对象,必须包含#include <functional>。

具体用法见上面例子。

posted on 2017-03-18 14:32  ^~~^  阅读(255)  评论(1编辑  收藏  举报

导航