. 传递给算法的”函数参数”,并不一定的是函数,可以使行为类似的函数对象.这种对象称为function object(函数物件),或者是functor(仿函数,跟函数有点一样,所以叫做仿函数呵呵)
.什么是仿函数了?
你可以说,任何东西行为向函数,他就是函数,也就是一个对象可以向函数那样来使用
代码模型
class A {
return value operator()( arg(参数)) {
}
}
.用在什么地方?
代码示例
class Prinint{
public:
void operator()(int elem){
cout<<elem<<endl;
}
}
int main(){
vector<int > coll;
for(int i =1;i<10;i++)
coll.push_back(i);
for_each(coll.begin(), coll.end(), PrintInt() );
cout<<endl;
}
.pinrtint 所做的定义显示,你可以对它的对象调用operator(),并传入一个int参数,for_each() 这个就是从coll.begin开始 到 coll.end结束这区间调用PrintInt() 函数,将其打印