202012-10 c++仿函数和函数适配器的使用详解 所谓的仿函数(functor),是通过重载()运算符模拟函数形为的类。因此,这里需要明确两点:1仿函数不是函数,它是个类;2仿函数重载了()运算符,使得它的对你可以像函数那样子调用(代码的形式好像是在调用函数)。for_each这里的for循环语句有点冗余,想到了std::for_each,为了使用for_each,我们需要定义一个函数,如下:voidprint(State*pstate){pstate->print();}于是就可以简化为下面代码:std::for_e... 继续阅读 >
202010-09 浅析C++ 仿函数 1.为什么要有仿函数我们先从一个非常简单的问题入手。假设我们现在有一个数组,数组中存有任意数量的数字,我们希望能够计数出这个数组中大于10的数字的数量,你的代码很可能是这样的:#include<iostream>usingnamespacestd;intRecallFunc(int*start,int*end,bool(*pf)(int)){intcount=0;for(int*i=start;i!=end+1;i++){count=pf(*i)?count+1:count;}returncount;}boolIsGreaterThanTen(intn... 继续阅读 >