仿函数(functor function objects)

作者 chauncy 日期 2016-12-09
仿函数(functor function objects)

. 传递给算法的”函数参数”,并不一定的是函数,可以使行为类似的函数对象.这种对象称为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() 函数,将其打印