这里记录一个使用函数对象的例子:
1 // ConsoleApplication25.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include6 #include 7 #include 8 #include 9 #include "stdlib.h"10 #include "time.h"11 #include 12 using namespace std;13 14 15 int main()16 {17 vector vect;18 19 cout << "Simple :" << endl;20 21 plus 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 ());32 for (vector ::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 (),1024));38 cout << "Final greater than 1024 is : " << final_count << endl;39 40 system("PAUSE");41 return 0;42 }
其中要点如下:
- 生成随机数的方法:必须包含#include "stdlib.h",#include "time.h",这两个一个作为时间种子,一个生成随机数字。
- 使用标准库算法,必须包含#include <algorithm>。
- 使用标准库的函数对象,必须包含#include <functional>。
具体用法见上面例子。