27 lines
653 B
C++
27 lines
653 B
C++
// 函数指针适配
|
|
// 使用 ptr_fun<>() 适配函数指针
|
|
// <> 中的第一个参数是函数指针的类型,第二个参数是函数指针的参数类型,第三个参数是函数指针的返回值类型
|
|
// bind1st() 和 bind2nd() 适配函数对象
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
|
|
using namespace std;
|
|
|
|
bool gtn(int n1, int n2)
|
|
{
|
|
return n1 > n2;
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int m[] = {1, 2, 2, 3, 5, 10};
|
|
vector<int> v;
|
|
v.assign(m, m + sizeof(m) / sizeof(m[0]));
|
|
|
|
vector<int>::iterator ret = find_if(v.begin(), v.end(), bind2nd(ptr_fun<int, int, bool>(gtn), 3));
|
|
cout << *ret << endl;
|
|
|
|
return 0;
|
|
}
|