函数适配器
1、绑定器和取反器
(1)、绑定器:把二元函数对象中一个参数固定,使之转为一元函数,C++标准库中提供了2种预定义的binder适配器,bind1st、bind2nd,分别绑定了第一个/第二个参数;
(2)、取反器:翻转的适配器;
(3)、一元函数:只针对一个参数,只有一个返回值;
二元函数:针对2个参数,只有一个返回值;
(4)、绑定器针对的是参数,绑定后其值就不变了,取反器对其进行取反;
(5)、可以通过调试工具-g;对源码进行剖析;
2、代码实现
关于绑定器和取反器的代码:
#include<iostream>#include<list>#include<algorithm>usingnamespacestd;intmain(void){intar[]={1,3,5,7,9,8,6,4,2,0};intn=sizeof(ar)/sizeof(int);intnCount=count(ar,ar+n,4);//求数组中一共有多少个4cout<<nCount<<endl;//x<=4;的个数nCount=count_if(ar,ar+sizeof(ar)/sizeof(int),bind2nd(greater<int>(),4));//用的是第二个绑定器进行的绑定;;//4<x//nCount=count_if(ar,ar+sizeof(ar)/sizeof(int),bind1st(less<int>(),4));//用的是第一个绑定器进行的绑定;cout<<nCount<<endl;//对x<4;进行取反,也就是x>=4的个数;nCount=count_if(ar,ar+n,not1(bind2nd(less<int>(),4)));//用的是取反器进行取反;cout<<nCount<<endl;return0;}
运行结果
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。