std::all_of
是 C++ 標準庫中的一個算法,用于檢查容器或范圍內的所有元素是否滿足特定條件。以下是 std::all_of
的一些常見使用場景:
std::all_of
。例如,檢查一個整數向量中的所有元素是否都是正數。#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
bool all_positive = std::all_of(numbers.begin(), numbers.end(), [](int n) { return n > 0; });
if (all_positive) {
std::cout << "All numbers are positive."<< std::endl;
} else {
std::cout << "Not all numbers are positive."<< std::endl;
}
return 0;
}
std::all_of
來檢查字符串是否滿足特定條件。例如,檢查一個字符串是否只包含小寫字母。#include<iostream>
#include<string>
#include<algorithm>
#include <cctype>
int main() {
std::string text = "hello";
bool all_lowercase = std::all_of(text.begin(), text.end(), [](char c) { return std::islower(c); });
if (all_lowercase) {
std::cout << "The string is all lowercase."<< std::endl;
} else {
std::cout << "The string contains uppercase characters."<< std::endl;
}
return 0;
}
std::all_of
不僅限于使用簡單的條件。你還可以使用 lambda 表達式或自定義函數來實現更復雜的條件檢查。#include<iostream>
#include<vector>
#include<algorithm>
bool is_multiple_of_three(int n) {
return n % 3 == 0;
}
int main() {
std::vector<int> numbers = {3, 6, 9, 12, 15};
bool all_multiples_of_three = std::all_of(numbers.begin(), numbers.end(), is_multiple_of_three);
if (all_multiples_of_three) {
std::cout << "All numbers are multiples of three."<< std::endl;
} else {
std::cout << "Not all numbers are multiples of three."<< std::endl;
}
return 0;
}
總之,std::all_of
是一種非常有用的算法,可以在需要檢查容器中所有元素是否滿足特定條件的場景中使用。