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.”。