亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C++中如何使用函數對象

發布時間:2021-07-23 16:36:29 來源:億速云 閱讀:183 作者:Leah 欄目:編程語言

C++中如何使用函數對象,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

適合對屬于基本數據類型的對象排序,它使用<作為排序比較規則,第2種語法則是根據指定排序規則comp來進行排序,其中comp參數就是一個函數對象。如果要排序的對象不是如int,float等簡單類型或不想使用<作為排序規則的話就得使用第2種語法。

指定一個函數對象來作為排序規則(函數對象)進行排序,那函數對象究竟是什么了,其實簡單地說它就是一些使用起來像調用函數一樣的對象,如:一般的函數,函數指針,或重載了()運算符的類的實例等,使用這些對象的方式好像調用函數一樣所以稱這些對象為C++函數對象,如下就是函數對象定義:

 void print(int x)   {          if(x>=0&&x<=100) cout<<x<<” ”;   }           //函數對象指針   typedef void(*ptPrint)(int x);   ptPrint prt=print;   //一個重載了()運算符得類   class isOk    {     public:     bool operator () (int val)     {           if(val<0||val>100)   {          return false;   }     return true;   }   };

有了上面得定義后,我們就可以以函數調用的形式使用上面的函數對象了,如: for_each(vectorA.begin(),vectorA.end(),print)打印大于等于0小于等于100的數, transform(vectorA.begin(),vectorA.end(),vectorB.begin(),isOk())判斷向量vectorA中值x的范圍是否在0之100之間。

如果在則向量vectorB對應的值為真,否則為假,其中vectorB中的數據類型為bool。在實際中往往會根據調用函數對象時參數的多少將函數對象分為三種形式,,無參函數對象,一元函數對象和二元函數對象,剛才的C++函數對象就是一個無參函數對象。無參函數對象與一元,二元函數對象有很大的區別,一元,二元函數對象的定義需要繼承以下函數原型:

class Grade   {   public:       Grade(int id,string name,int score)       {           ID=id;           Name=name;           Score=score;       }       int ID;       string Name;       int Score;   };

看完上述內容,你們掌握C++中如何使用函數對象的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

c++
AI

会同县| 庆城县| 平原县| 江北区| 望江县| 明溪县| 临安市| 长阳| 凤翔县| 双桥区| 乡城县| 吉水县| 古交市| 台山市| 沽源县| 凤台县| 富顺县| 巴马| 郎溪县| 长宁县| 文化| 横峰县| 全南县| 高州市| 茶陵县| 桃江县| 平果县| 龙岩市| 顺昌县| 金华市| 乐至县| 隆回县| 永定县| 黄大仙区| 石棉县| 灵宝市| 行唐县| 西吉县| 赤水市| 平和县| 区。|