2012-08-25 60 views

回答

7

pred代表謂語這基本上是一個可調用的實體,或者是一個函數或仿函數(或拉姆達,這實質上是取決於它捕獲變量算符或函數( s)或不)。所以謂詞可以帶一個或多個參數,並返回一個布爾值。

下面是std::find_if的一個例子,其中一個重載將一元謂詞作爲第三個參數。該斷言是一元,因爲它需要一個參數,並返回bool

std::vector<int> v{1,2,3,5,6}; 
auto it = std::find_if(begin(v), end(v), [](int i) { return i == 3; }); 

通知第三個參數是其被用作元謂詞的λ。

在C++ 03,示例可以是這樣的:

bool is_three(int i) { return i == 3; } 

std::vector<int>::iterator it = std::find_if(v.begin(), v.end(), is_three); 

注意,現在is_three這是因爲第三個參數被傳遞給std::find_if的功能。

相關問題