2019独角兽企业重金招聘Python工程师标准>>>

在定义一个仿函数(functor)不会使用binary_function,但是如果需要函数适配器便需要使用它实现:

struct Inserter
{void operator() (int n, vector<int>& v){v.push_back(n);}
}
Inserter cIn;
vector<int> vInt;
cln(2, vInt);

通过一个算法忘当前容器追加值:

template<typename Functor>
void append(Functor f)
{int x;while(cin >> x)f(x);
}

此时,append的Functor只有一个形参,在不考虑重写Inserter的基础上我们需要定义Inserter_adapter:

template<typename Functor>
struct Inserter_Adapter
{Inserter_Adapter(const Functor& f, vector<int>& v):_f(f), _v(v){}void operator()(int x){_f(x, v_);}private:Functor& _f;vector<int> _v;
};
//使用:
Inserter cIn;
vector<int> vIn;
Inserter_Adapter cIna(f, vIn);
append(ia);

在STL中,提供了相关的函数 bind2nd的适配器,把第二个参数绑定让一个二元函数变成一元的。 此前定义的Inserter不能直接使用在bind2nd上,因为和bind2nd的concept不符合,需要继承binary_function:

struct Inserter : public std::binary_function<int, vector<int>&, void>
{void operator()(int x, vector<int>& vIn){v.push_back(x);}
}
Inserter cIn;
vector<int> vIn;
append(std::bind2nd(cIn, vd))     //1
Inserter_Adapter(cIn, vd)

转载于:https://my.oschina.net/zhaolu0607/blog/826953

binary_function 函数用法相关推荐

  1. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法

    目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...

  2. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  3. linux中awk下 gsub函数用法

    gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...

  4. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  5. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  6. python Pool常用函数用法总结

    在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...

  7. C++计算程序耗时函数用法汇总

    文章目录 前言 方法一(使用频率:常用) 方法二(使用频率:次之) 方法三(使用频率:常用) 补充:方法四 方法五 最常用的时间戳获取方法 前言 这里简单将自己在项目中经常用到的统计耗时的函数用法做个 ...

  8. undistortPoints()函数用法总结

    undistortPoints()函数用法总结   函数调用:C++: void undistortPoints(InputArray src, OutputArray dst, InputArray ...

  9. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

最新文章

  1. shell shocked什么意思_Shell 启动类型探究 ── login interactive
  2. WKWebView中经常用到的操作
  3. 目标意识应求成大于避败 思考时不要先意识到身不足而自我设限
  4. 转 23种开发模式一点就通
  5. pythonsvc_sklearn-SVC实现与类参数详解
  6. jq获取页面url后边带的参数
  7. Using OpenCV Java with Eclipse
  8. Win10任务栏100%透明怎么设置
  9. 2003迁移2008R2难点分析
  10. 华为P40怎么解账号锁P40Pro忘记密码ID账号锁解除方案开机设备解锁帐号软件使用方法
  11. 2021鹏业安装算量软件常见问题整理(三)
  12. 天坑专业成功跨考计算机,研0渣渣前来报到
  13. Vuepress-theme-reco 构建静态网页错误:在格式错误时超出了最大调用堆栈大小
  14. ProcessOn在线画图
  15. Asp-Net-Core开发笔记:集成Hangfire实现异步任务队列和定时任务
  16. 京东价格api,京东商品详情接口,京东api,京东优惠券接口,京东到手价api接口,京东app详情接口,接口代码对接实现价格监控接口,品牌维权接口,行业分析api接口代码分享
  17. Android多语言翻译国际化语言代码与中文对照整理
  18. 一个按年季度查询数据的SQL语句
  19. 毕业五年,专科学历的小哥逆袭进腾讯,演绎什么叫努力就有收获!
  20. 基于Unity UGUI RawImage的网络头像功能实现方案

热门文章

  1. JavaScript面向对象编程(2)-- 类的定义
  2. java中的split方法
  3. 喜来登酒店和度假村启用全新品牌标志,转型进入里程碑式阶段
  4. 达人酷 psd转html,所有Apple设备PSD模型素材(扁平化风格)
  5. [从头学绘画] 第14节 六十四式八卦掌 (17-24)
  6. Android绘图最终篇之大战贝塞尔三次曲线
  7. 想知道留学同声传译app有哪些吗
  8. Quasar 的介绍及安装使用
  9. 「小程序JAVA实战」小程序我的个人信息-注销功能(42)
  10. 分享20个新颖的字体设计草图,带给你灵感