std::all_of、std::any_of、std::none_of
【1】示例程序以及注释
1 #include <iostream> 2 #include <functional> 3 #include <vector> 4 #include <algorithm> 5 6 std::function<bool(int)> is_even_number = [](int x) -> bool 7 { 8 std::cout << "call is_even_number params : " << x << std::endl; 9 return (std::fmod(x, 2) == 0); 10 }; 11 12 int main() 13 { 14 auto printResult = [](std::string funcName, bool bResult) { 15 std::cout << funcName << (bResult ? "::yes" : "::no") << std::endl << std::endl; 16 }; 17 18 std::vector<int> even = { 2, 4, 6, 8, 10 }; 19 20 // 容器中所有元素全部为偶数,则返回true;否则返回false。 21 printResult("std::all_of", std::all_of(even.begin(), even.end(), is_even_number)); 22 23 // 若容器中任一元素为偶数,则返回true;否则将继续遍历剩余元素。 24 printResult("std::any_of", std::any_of(even.begin(), even.end(), is_even_number)); 25 26 // 容器中没有一个元素为偶数,则返回true;否则返回false。 27 // 即就是:容器中但凡有一个元素为偶数,则返回false。 28 printResult("std::none_of", std::none_of(even.begin(), even.end(), is_even_number)); 29 30 return 0; 31 } 32 33 // run result: 34 /* 35 call is_even_number params : 2 36 call is_even_number params : 4 37 call is_even_number params : 6 38 call is_even_number params : 8 39 call is_even_number params : 10 40 std::all_of::yes 41 42 call is_even_number params : 2 43 std::any_of::yes 44 45 call is_even_number params : 2 46 std::none_of::no 47 */