2013-12-24 19 views
1

algorithm標題中的std::find_if等功能非常有用,但對我來說有一個嚴重的限制,那就是每次調用count_if時只能使用1個謂詞。C++有多個謂詞的11種算法

例如,給定一個像std::vector這樣的容器,我想同時應用find_if的多個謂詞;標準庫中有一些東西可以在保持這種功能的同時實現這一點?

回答

6

只是一個拉姆達將它們結合起來:

std::find_if(begin(vec), end(vec), 
    [](elem_t val) { 
     return f1(val) || f2(val); 
    }); 
+0

哦,它比我預想的 – user2485710

+0

要簡單得多,但這種方法對不同的謂詞結果落得相同的輸出去,如果我想什麼將結果派發給每個謂詞的特定對象? – user2485710

+0

@ user2485710 - 這樣做,你寫你自己的算法。 –