ranges::contains
ranges::contains (범위 포함 검사)
범위에 특정 값이 포함되어 있는지 검사하는 ranges 버전 알고리즘이에요. <algorithm> 헤더, C++23부터.
출처: cppreference
본문
std::ranges::contains는 범위에 value가 있는지 검사해요.
namespace std::ranges {
template< std::input_iterator I, std::sentinel_for<I> S,
class T, class Proj = std::identity >
constexpr bool contains( I first, S last, const T& value, Proj proj = {} );
}
[first, last)안에value와 같은 원소가 있으면true.operator==(또는proj적용 결과)로 비교해요.
술어 기반 버전 contains_subrange(부분 시퀀스 포함)와 ranges::contains(단일 값 포함)가 있어요.
std::vector<int> v{1, 2, 3, 4};
bool b1 = std::ranges::contains(v, 3); // true
bool b2 = std::ranges::contains(v, 9); // false
"특정 값이 범위에 있는지"를 간단히 물어볼 때, find != end() 조건보다 읽기 쉬운 함수예요.