algorithm
std::all_of, std::any_of, std::none_of
- 반복자를 사용하여 범위 내에 있는 값이 특정 조건을 만족하는지 확인
- all_of : first ~ last가 모두 true인가?
- any_of : first ~ last 중 하나라도 true인가?
- none_of : first ~ last가 모두 false인가?
Defined
template< class InputIt, class UnaryPredicate >
bool all_of( InputIt first, InputIt last, UnaryPredicate p );
template< class InputIt, class UnaryPredicate >
bool any_of( InputIt first, InputIt last, UnaryPredicate p );
template< class InputIt, class UnaryPredicate >
bool none_of( InputIt first, InputIt last, UnaryPredicate p );
Parameters
- first/last : InputIt(반복자)로 p를 검사할 범위
- p : parameter가 1개인 함수로 bool type 혹은 bool type으로 변환 가능해야 함
- InputIt : must
Possible Implementation
template< class InputIt, class UnaryPredicate >
constexpr bool all_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if_not(first, last, p) == last;
}
template< class InputIt, class UnaryPredicate >
constexpr bool any_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if(first, last, p) != last;
}
template< class InputIt, class UnaryPredicate >
constexpr bool none_of(InputIt first, InputIt last, UnaryPredicate p)
{
return std::find_if(first, last, p) == last;
}
참고