📅  最后修改于: 2023-12-03 14:39:57.414000             🧑  作者: Mango
std::all_of()
是C++标准库中的一个算法,该算法可用于检查指定范围内的所有元素是否符合给定的谓词条件。如果所有元素都符合条件,则该函数返回true,否则返回false。
std::all_of()
需要的参数包括:要扫描的范围、谓词条件(可作为lambda表达式传递)。
template< class InputIt, class UnaryPredicate >
bool all_of( InputIt first, InputIt last, UnaryPredicate p );
以上是std::all_of()
的函数声明,其中:
first
和last
:迭代器,指定要检查的范围。代表一个左闭右开区间。p
:一元谓词函数或可调用对象,将应用于范围中的每个元素。下面的示例演示了如何使用std::all_of()
函数:
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> vec = {1, 2, 3, 4, 5};
// 判断是否所有元素都是奇数
if (std::all_of(vec.begin(), vec.end(), [](int i){return i%2 != 0;}))
{
std::cout << "All elements are odd.\n";
}
else
{
std::cout << "Not all elements are odd.\n";
}
return 0;
}
输出:
Not all elements are odd.
这个例子中,我们传递了一个 lambda 表达式作为谓词条件,用于判断 vec
中的每个元素是否为奇数。由于有 2
和 4
两个偶数元素,因此判断结果是 false。
std::none_of()
函数来检查指定范围内是否没有元素符合给定的谓词条件。std::all_of()
时,应确保范围内的元素可以进行一元谓词操作,否则可能会导致未定义行为。std::all_of()
返回true
。