七 仿函数 functors

第七章:仿函数  functors


1、STL算法接受一个函数指针或者仿函数对象作为其一个参数。但是普通函数指针不具备可配接能力。

2、STL仿函数分类:按操作数个数分为 一元仿函数、二元仿函数。(STL不支持三元仿函数)。按功能:可分为 算术运算、关系运算、逻辑运算。   要使用STL的内建仿函数,需含<functional>.

3、为了使仿函数具有可配接能力,每个仿函数需要定义自己的相应型别,如同迭代器要符合STL标准一样。仿函数的相应型别: 函数参数型别和传回值型别。  定义仿函数时只需要直接继承至STL已提供的两个基类(其中typedef 了所需的两个相应类型型别)

一元仿函数继承于:struct  unary_function  

二元仿函数继承于:struct  binary_function

4、证同元素: “运算op的证同元素”,即元素A若与该元素做op运算,会得到自己。 例如:加法的证同元素为0;乘法的证同元素为。要获取运算op的证同元素,只需要使用 模板函数 identity_element(op<T>);即可返回op的证同元素。

5、三个函数对象:

  证同:证同函数(对象)任何数据通过该函数后不会发生人任何改变,直接返回。

选择函数:接受一个pair,传回其第一或第二元素。  Select1st/select2nd;

投射函数:project1st:传回第一参数,忽略第二参数。

                   Project2nd:传回第二参数,忽略第一参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值