您好,登錄后才能下訂單哦!
1、綁定器和取反器
(1)、綁定器:把二元函數(shù)對(duì)象中一個(gè)參數(shù)固定,使之轉(zhuǎn)為一元函數(shù),C++標(biāo)準(zhǔn)庫(kù)中提供了2種預(yù)定義的binder適配器,bind1st、bind2nd,分別綁定了第一個(gè)/第二個(gè)參數(shù);
(2)、取反器:翻轉(zhuǎn)的適配器;
(3)、一元函數(shù):只針對(duì)一個(gè)參數(shù),只有一個(gè)返回值;
二元函數(shù):針對(duì)2個(gè)參數(shù),只有一個(gè)返回值;
(4)、綁定器針對(duì)的是參數(shù),綁定后其值就不變了,取反器對(duì)其進(jìn)行取反;
(5)、可以通過(guò)調(diào)試工具-g;對(duì)源碼進(jìn)行剖析;
2、代碼實(shí)現(xiàn)
關(guān)于綁定器和取反器的代碼:
#include<iostream> #include<list> #include<algorithm> using namespace std; int main(void){ int ar[] = {1,3,5,7,9,8,6,4,2,0}; int n = sizeof(ar) / sizeof(int); int nCount = count(ar,ar+n, 4);//求數(shù)組中一共有多少個(gè)4 cout<<nCount<<endl; //x <= 4;的個(gè)數(shù) nCount = count_if(ar, ar+sizeof(ar)/sizeof(int), bind2nd(greater<int>(), 4));//用的是第二個(gè)綁定器進(jìn)行的綁定;; //4 < x //nCount = count_if(ar, ar+sizeof(ar)/sizeof(int), bind1st(less<int>(), 4));//用的是第一個(gè)綁定器進(jìn)行的綁定; cout<<nCount<<endl; //對(duì)x < 4;進(jìn)行取反,也就是x >= 4的個(gè)數(shù); nCount = count_if(ar, ar+n, not1(bind2nd(less<int>(), 4)));//用的是取反器進(jìn)行取反; cout<<nCount<<endl; return 0; }
運(yùn)行結(jié)果
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。