一直不能理解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.指標函式的定義 顧名思義,指標函式即返回指標的函式。其一般定義形式如下 型別名 函式名 函式引數表列 其中,字尾運算子括號 表示這是乙個函式,其字首運算子星號 表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當呼叫這個函式後,將得到乙個 指向返回值為 的指標 位址 型別名 表...
深入理解指標函式
顧名思義,指標函式 即返回指標的函式。其一般定義形式如下 型別名 函式名 函式引數表列 其中,字尾運算子括號 表示這是乙個函式,其字首運算子星號 表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當呼叫這個函式後,將得到乙個 指向返回值為 的指標 位址 型別名 表示函式返回的指標指...