[STL] std::ranges::any_ofC++/STL2024. 6. 23. 22:40
Table of Contents
1. 개요
std::ranges::any_of 함수는 C++20부터 표준 라이브러리에 추가된 함수로, 주어진 범위(range)에서 하나 이상의 요소가 주어진 조건을 만족하는지 검사한다.
2. template
template<typename Range, typename UnaryPredicate>
bool any_of_example(const Range& range, UnaryPredicate predicate) {
return std::ranges::any_of(range, predicate);
}
2.1. 멤버함수
- std::ranges::any_of(range, predicate): 주어진 범위에서 하나 이상의 요소가 unary_predicate 조건을 만족하는지 검사한다.
- range: 검사할 요소들의 범위를 나타내는 반복자들이다.
- predicate: 각 요소를 평가할 조건을 나타내는 함수 객체(lambda 함수)이다. 이 함수는 각 요소를 입력으로 받고, boolean 값을 반환해야 한다.
3. 사용 예시
#include <iostream>
#include <algorithm> // std::ranges::any_of
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 벡터 numbers에서 짝수가 하나 이상 존재하는지 검사
bool has_even = std::ranges::any_of(numbers, [](int x) { return x % 2 == 0; });
if (has_even) {
std::cout << "짝수가 하나 이상 존재합니다." << std::endl;
} else {
std::cout << "짝수가 존재하지 않습니다." << std::endl;
}
return 0;
}
4. 참고사항
4.1. 순차적
범위를 통해 요소들을 검사하므로, 범위의 첫 번째 요소부터 순차적으로 검사
4.2. 관련 문서
https://en.cppreference.com/w/cpp/algorithm/ranges/all_any_none_of
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!