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;}

运行结果