greater 구조체greater Struct

큼 수행 하는 이진 조건자-작업 보다 (operator>) 인수에 대해 합니다.A binary predicate that performs the greater-than operation (operator>) on its arguments.

구문Syntax

template <class Type = void>
struct greater : public binary_function <Type, Type, bool>
{
    bool operator()(
    const Type& Left,
    const Type& Right) const;

};

// specialized transparent functor for operator>
template <>
struct greater<void>
{
  template <class T, class U>
  auto operator()(T&& Left, U&& Right) const
    ->  decltype(std::forward<T>(Left)> std::forward<U>(Right));
};

매개 변수Parameters

형식하십시오 T, UType, T, U
지정되었거나 유추된 형식의 피연산자를 가져오는 operator>를 지원하는 모든 형식입니다.Any type that supports an operator> that takes operands of the specified or inferred types.

왼쪽Left
큼 연산의 왼쪽 피연산자입니다.The left operand of the greater-than operation. 형식의 lvalue 참조 인수를 사용 하는 특수화 되지 않은 템플릿은 형식합니다.The unspecialized template takes an lvalue reference argument of type Type. 특수화 된 템플릿은 완벽 하 게 전달의 lvalue 및 rvalue 참조 인수 형식 유추 T합니다.The specialized template does perfect forwarding of lvalue and rvalue reference arguments of inferred type T.

오른쪽Right
큼 연산의 오른쪽 피연산자입니다.The right operand of the greater-than operation. 형식의 lvalue 참조 인수를 사용 하는 특수화 되지 않은 템플릿은 형식합니다.The unspecialized template takes an lvalue reference argument of type Type. 특수화 된 템플릿은 완벽 하 게 전달의 lvalue 및 rvalue 참조 인수 형식 유추 U합니다.The specialized template does perfect forwarding of lvalue and rvalue reference arguments of inferred type U.

반환 값Return Value

Left > Right의 결과입니다.The result of Left > Right. 특수화된 템플릿은 operator>에 의해 반환되는 형식을 가지고 있는 결과를 완벽하게 전달합니다.The specialized template does perfect forwarding of the result, which has the type that's returned by operator>.

설명Remarks

이진 조건자 greater < Type> 형식의 요소 값의 집합이 엄밀히 약한 정렬을 제공 형식 동등 클래스에이 이와 같은 수치는 표준 충족 하는 경우에 하 여 그렇게 정렬에 대 한 요구 사항입니다.The binary predicate greater<Type> provides a strict weak ordering of a set of element values of type Type into equivalence classes, if and only if this type satisfies the standard mathematical requirements for being so ordered. 고유한 값의 모든 요소가 서로를 기준으로 정렬된다는 점에서 모든 포인터 형식에 대한 특수화는 요소의 전체 순서 지정을 생성합니다.The specializations for any pointer type yield a total ordering of elements, in that all elements of distinct values are ordered with respect to each other.

예제Example

// functional_greater.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <iostream>

int main( )
{
   using namespace std;
   vector <int> v1;
   vector <int>::iterator Iter1;

   int i;
   for ( i = 0 ; i < 8 ; i++ )
   {
      v1.push_back( rand( ) );
   }

   cout << "Original vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // To sort in ascending order,
   // use default binary predicate less<int>( )
   sort( v1.begin( ), v1.end( ) );
   cout << "Sorted vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // To sort in descending order,
   // specify binary predicate greater<int>( )
   sort( v1.begin( ), v1.end( ), greater<int>( ) );
   cout << "Resorted vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;
}
Original vector v1 = (41 18467 6334 26500 19169 15724 11478 29358)
Sorted vector v1 = (41 6334 11478 15724 18467 19169 26500 29358)
Resorted vector v1 = (29358 26500 19169 18467 15724 11478 6334 41)