functional_greater
functional_greater (greater 함수 객체)
이 페이지는 C++ 표준 라이브러리의 std::greater 함수 객체에 대해 설명해요. std::greater는 두 값을 비교해서 첫 번째 값이 두 번째 값보다 큰지 확인하는 데 사용해요. 주로 정렬이나 컨테이너의 비교 연산자로 활용할 수 있어요.
출처: cppreference
본문
<functional> 헤더에 정의되어 있어요.
| 정의 | ||
|---|---|---|
template < class T > struct greater ; |
(C++14 이전) | |
template < class T = void > struct greater ; |
(C++14 이후) |
비교를 수행하는 함수 객체예요. 기본 템플릿은 T 타입에 대해 operator >를 호출해요.
특수화
greater<void> (C++14) |
매개변수와 반환 타입을 추론하여 x > y를 구현하는 함수 객체 (클래스 템플릿 특수화) |
|---|
멤버 타입
| 타입 | 정의 |
|---|---|
result_type (C++17에서 deprecated, C++20에서 제거) |
bool |
first_argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
second_argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
이러한 멤버 타입은 std::binary_function<T, T, bool>을 공개 상속하여 얻었어요. |
(C++11까지) |
|---|
멤버 함수
operator() |
첫 번째 인자가 두 번째 인자보다 큰지 확인해요 (공개 멤버 함수) |
|---|
std::greater::operator()
bool operator ()( const T & lhs , const T & rhs ) const ;
(constexpr since C++14)
lhs가 rhs보다 큰지 확인해요.
매개변수
| lhs, rhs | - | 비교할 값 |
|---|
반환값
lhs > rhs를 반환해요.
T가 포인터 타입이라면, 결과는 구현에서 정의하는 엄격한 전체 순서(strict total order)와 일관성이 있어요.
예외
구현에서 정의하는 예외를 던질 수 있어요.
가능한 구현
constexpr bool operator ()( const T & lhs , const T & rhs ) const { return lhs > rhs ; // assumes that the implementation handles pointer total order }
결함 보고서
다음의 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었어요.
| DR | 적용 대상 | 발표된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2562 | C++98 | 포인터 전체 순서가 일관되지 않을 수 있었어요 | 일관성이 보장돼요 |
더 알아보기
less |
x < y를 구현하는 함수 객체 (클래스 템플릿) |
|---|---|
ranges::greater (C++20) |
x > y를 구현하는 제약된 함수 객체 (클래스) |