#include <iostream>
#include <vector>
#include <algorithm> //算法
#include <functional> //仿函数
using namespace std;
bool less3(int x)
{
return x < 30;
}
int main(void)
{
vector<int> Myvecyor;
Myvecyor.push_back(10);
Myvecyor.push_back(20);
Myvecyor.push_back(30);
Myvecyor.push_back(40);
Myvecyor.push_back(50);
Myvecyor.push_back(60);
//迭代器 也可以用auto自动变量
//迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。
vector<int>::iterator ib = Myvecyor.begin();
vector<int>::iterator ie = Myvecyor.end();
for (; ib!=ie; ib++)
{
cout << *ib << " ";
}
//仿函数 绑定函数 第一个大于30的数字
/*auto ifind = find_if(Myvecyor.begin(), Myvecyor.end(), bind1st(greater<int>(), 30));
std::cout << "\n\n\n" << *ifind << endl;*/
auto ifind1 = find_if(Myvecyor.begin(), Myvecyor.end(), less3); //自己实现的仿函数
std::cout << "\n" << *ifind1 << endl;
cin.get();
return 0;
}
仿函数(functor),就是使一个类的使用看上去像一个函数。
其实现就是类中实现一个opreator(),这个类就有了类似函数的行为,就是一个仿函数类了。