溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

函數適配器

發布時間:2020-06-10 19:37:40 來源:網絡 閱讀:433 作者:匯天下豪杰 欄目:編程語言

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

運行結果

函數適配器



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女