C++ STL 体系结构与内核分析(六)彷函数适配器/Adapter/Binder2nd/not1

彷函数Functors

算法要求一些准则,给一些特定操作,去告诉算法。

下图是标准库列举的三大类:算法类/逻辑运算类/相对关系类

非标准,传递x进去,传出first.

四个sort算法:default/function/object/explicitly,都是从小到大排序

第五个another comparision,从大到小。

写入的适配器融入STL,彷函数适配条件:要会回答问题,需要挑选适当的来继承。

存在多种Adapter

也叫改造器。把某一个接口改改或者函数名称改改。做的都比较简单。搭建一个桥梁,取用B的功能。通过继承或者内涵(复合)功能。但是Adapter一般使用复合方法来做。

example: 容器适配器stack/queue

Binder2nd

function adapter

右上角代码表示count_if,有多少元素判断小于(less)40个函数。bind2nd函数来实现。下图右下角那一块。具体介绍请看代码和注释

函数适配器使用的时候得指定模版参数.

下图执行流程:左上角倒数第二行中 return typename + 小括号:创建对象和传入参数op/x,调用构造函数x和y,构造函数里面记录x和y,然后这个对象会记在count_if里面,不断的调用operator();

注意的是灰色字体是细节部分,左上角那个是转换类型,输入的40转 换成特定type,比如A要修饰B,然后最后返回的类型必须问operatoration你的result type是什么,得保持一样。

核心:把东西记起来,以备不时之需,回答出问题才能适配adapter。typename就是强调Operator这个类型。

not1

句句修饰,下图右上角意思是不小于40。

not1接受红色部分,实参推导,记起来参数,调用operator将记起来的参数用起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值