C++ Functor仿函数
创始人
2024-11-14 18:05:03
0

Functor 对象模拟函数

把类对象,像函数名一样使用。

仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现
一个 operator(),这个类就有了类似函数的行为,就是一个仿函数类了。

operator() 语法格式

class 类名 {     返值类型 operator()(参数类型)         函数体 } 
#include  #include  using namespace std;  class Pow { public:     //仿函数     double operator()(double a, int b){         double result = 1;         for(int i=0;i

functor 的优势

functor 的优势在于,是对象形式,可以携带更多的的信息,用于作出判断。 比如,我们可以在对象初始化的时候,传入参数来决定状态,而不用去修改原代码。 

functor使用示例

#include  #include  #include  using namespace std;  //局限性较大 bool myCompare(int a, int b){     return a < b; }  //仿函数,可以携带更多参数 class Compare{ public:     Compare(bool flag=true):flag(flag){}     bool operator()(int a, int b){         if (flag==true)             return a < b;         else             return a > b;     } private:     bool flag; };  int main(){     int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};      vector vi(arr, arr+11);     sort(vi.begin(), vi.end(), Compare(false));  //c98的写法 //    vector::iterator itr; //    for(itr=vi.begin();itr!=vi.end();++itr){ //        cout<<*itr<<" "; //    }      //c++11的写法     for(auto itr=vi.begin();itr!=vi.end();++itr){         cout<<*itr<<" ";     }      //c++17的写法 //    for(auto i : vi){ //        cout<

相关内容

热门资讯

实测分享!微信小程序免费黑科技... 实测分享!微信小程序免费黑科技,蜜瓜大厅辅助免费下载窍门教程(有挂猫腻)1、玩家可以在微信小程序免费...
截至发稿!微乐小程序黑科技,蛮... 截至发稿!微乐小程序黑科技,蛮籽酉阳大贰辅助手册教程(有挂方法)1、进入到微乐小程序黑科技是否有挂之...
一分钟教会你!微信小程序免费黑... 一分钟教会你!微信小程序免费黑科技开挂,欢乐茶馆脚本方案教程(有挂细节)1、微信小程序免费黑科技透视...
热门推荐!微信小程序免费黑科技... 热门推荐!微信小程序免费黑科技辅助,朋友局辅助器绝活教程(发现有挂)热门推荐!微信小程序免费黑科技辅...
2024教程!微信小程序免费黑... 2024教程!微信小程序免费黑科技透视,卡五星辅助器逍遥模块教程(确实有挂)1、玩家可以在微信小程序...
现有关情况通报如下!微信小程序... 现有关情况通报如下!微信小程序免费黑科技开挂,潮汕木虱有辅助挂吗积累教程(有挂详细)1)微信小程序免...
据相关数据显示!微乐小程序黑科... 据相关数据显示!微乐小程序黑科技,途游手游辅助脚本平台教材教程(有挂方略)1、超多福利:超高返利,海...
今日焦点!微信小程序免费黑科技... 今日焦点!微信小程序免费黑科技,途游手游辅助秘籍教程(有挂技巧)1、下载好微信小程序免费黑科技正确养...
最新研发!微乐小程序黑科技,吉... 最新研发!微乐小程序黑科技,吉祥填大坑攻略窍门教程(新版有挂)1、每一步都需要思考,不同水平的挑战微...
三分钟了解!微乐小程序免费黑科... 三分钟了解!微乐小程序免费黑科技,闲逸碰胡辅助积累教程(有挂方法)1、许多玩家不知道微乐小程序免费黑...