您好,登錄后才能下訂單哦!
1、綁定器和取反器
(1)、綁定器:把二元函數對象中一個參數固定,使之轉為一元函數,C++標準庫中提供了2種預定義的binder適配器,bind1st、bind2nd,分別綁定了第一個/第二個參數;
(2)、取反器:翻轉的適配器;
(3)、一元函數:只針對一個參數,只有一個返回值;
二元函數:針對2個參數,只有一個返回值;
(4)、綁定器針對的是參數,綁定后其值就不變了,取反器對其進行取反;
(5)、可以通過調試工具-g;對源碼進行剖析;
2、代碼實現
關于綁定器和取反器的代碼:
#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);//求數組中一共有多少個4 cout<<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; return 0; }
運行結果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。