std::all_of
是 C++ 标准库中的一个算法,用于检查容器或范围内的所有元素是否满足特定条件。它接受三个参数:两个迭代器(表示范围的开始和结束)以及一个断言(用于测试每个元素的条件)。
参数含义
first
和 last
:这两个迭代器定义了要操作的元素范围。first
是范围的开始,last
是范围的结束。注意,last
指向的元素不包含在范围内。p
:这是一个断言,即一个返回布尔值的函数或函数对象。它将应用于范围内的每个元素。如果所有元素都使得 p
返回 true
,则 std::all_of
也返回 true
;否则返回 false
。用法示例
下面是一个简单的示例,展示了如何使用 std::all_of
来检查一个整数向量中的所有元素是否都大于 5。
#include<iostream>
#include<vector>
#include<algorithm>
bool is_greater_than_five(int i) {
return i > 5;
}
int main() {
std::vector<int> numbers = {6, 7, 8, 9, 10};
bool result = std::all_of(numbers.begin(), numbers.end(), is_greater_than_five);
if (result) {
std::cout << "All elements are greater than 5."<< std::endl;
} else {
std::cout << "Not all elements are greater than 5."<< std::endl;
}
return 0;
}
在这个示例中,is_greater_than_five
函数是一个断言,用于检查给定的整数是否大于 5。我们将这个断言传递给 std::all_of
,它会应用于 numbers
向量中的所有元素。如果所有元素都大于 5,程序将输出 “All elements are greater than 5.”,否则输出 “Not all elements are greater than 5.”。