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 */
posted @ 2022-06-28 19:08  kaizenly  阅读(290)  评论(0编辑  收藏  举报
打赏