91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

静乐县| 连云港市| 定陶县| 潼南县| 云林县| 江山市| 烟台市| 鞍山市| 芮城县| 南郑县| 博兴县| 保德县| 舟曲县| 高邮市| 花莲市| 铜鼓县| 泸水县| 乾安县| 永川市| 伊宁县| 海门市| 南安市| 湘阴县| 梁河县| 民和| 邢台县| 宁安市| 惠安县| 婺源县| 十堰市| 桦川县| 门源| 象州县| 兴业县| 巨野县| 大港区| 栾城县| 尼玛县| 周口市| 迭部县| 安溪县|