`all_of`, `any_of` 和 `none_of` 是C++标准模板库 (STL) 中的一些算法,它们用于检查容器中的元素是否满足某个特定条件。这些算法的工作方式是接受一对迭代器(定义了一个范围)和一个谓词(一个返回bool值的函数或者函数对象)。它们分别定义在 `` 头文件中。
1. **all_of**: 检查范围内的所有元素是否都满足某个条件。
std::vector<int> v {1, 2, 3, 4, 5};
bool allEven = std::all_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// allEven will be false because not all elements are even
2. **any_of**: 检查范围内的任何元素是否满足某个条件。
std::vector<int> v {1, 2, 3, 4, 5};
bool anyEven = std::any_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// anyEven will be true because at least one element (2 and 4) is even
3. **none_of**: 检查范围内的所有元素是否都不满足某个条件。
std::vector<int> v {1, 2, 3, 4, 5};
bool noneEven = std::none_of(v.begin(), v.end(), [](int i){return i%2 == 0;});
// noneEven will be false because some elements (2 and 4) are even
这些函数对于检查满足某个条件的元素非常有用,可以使代码更加简洁和易读。