bind1st深入理解 仿函式 函式物件

2021-06-16 08:18:44 字數 553 閱讀 1595

一直不能理解bind1st是怎麼操作的,其實很簡單

k = count_if(alist.begin(), alist.end(), bind1st(greater(), 8)); 

其實是這樣的

bind1st() 建立乙個函式物件,該函式物件將值v作為第乙個引數a。

然後二元函式就變成了一元函式,之前二元函式需要的兩個引數已經輸入了乙個預設值。

說的簡單點就是bind1st的返回值是乙個一元函式。

看到count_if的**之後,相信一切都豁然開朗,這就是函式原始碼的魅力!

template

ptrdiff_t count_if ( inputiterator first, inputiterator last, predicate pred )

所以,綜上所述
bind1st(greater(), 8)  相當於

8 >*first

深入理解函式

第五章 深入理解函式 1.return語句 有返回值的函式中,return語句的作用式提供整個函式的返回值,並結束當前函式返回到呼叫它的地方。在沒有返回值的函式中也可以使用return語句,例如當前檢查到乙個錯誤時提前結束當前函式的執行並返回 這個函式首先檢查引數x是否大於0,如果x不大於0就列印錯...

深入理解指標函式

1.指標函式的定義 顧名思義,指標函式即返回指標的函式。其一般定義形式如下 型別名 函式名 函式引數表列 其中,字尾運算子括號 表示這是乙個函式,其字首運算子星號 表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當呼叫這個函式後,將得到乙個 指向返回值為 的指標 位址 型別名 表...

深入理解指標函式

顧名思義,指標函式 即返回指標的函式。其一般定義形式如下 型別名 函式名 函式引數表列 其中,字尾運算子括號 表示這是乙個函式,其字首運算子星號 表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當呼叫這個函式後,將得到乙個 指向返回值為 的指標 位址 型別名 表示函式返回的指標指...