std::greater

< cpp‎ | utility‎ | functional
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等字符串转换
(C++17)
(C++17)
 
函数对象
函数包装
(C++11)
(C++11)
部分函数应用
(C++11)
(C++20)
函数调用
(C++17)
恒等函数对象
(C++20)
引用包装
(C++11)(C++11)
运算符包装
取反器
(C++17)
搜索器
有制约的比较器
旧绑定器与适配器
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)(C++17 前)(C++17 前)(C++17 前)
(C++20 前)
(C++20 前)
(C++17 前)(C++17 前)
(C++17 前)(C++17 前)

(C++17 前)
(C++17 前)(C++17 前)(C++17 前)(C++17 前)
(C++20 前)
(C++20 前)
 
定义于头文件 <functional>
template< class T >
struct greater;
(C++14 前)
template< class T = void >
struct greater;
(C++14 起)

实现比较的函数对象。调用类型 T 上的 operator> ,除非特化。

特化

std::greater 的特化为任何指针类型产生严格全序,即使内建的 operator> 不如此。严格全序在 std::lessstd::greaterstd::less_equalstd::greater_equal 对该指针类型的特化间一致,且亦与对应的内建运算符( <><=>= )所强加的部分顺序一致。

若特化 std::greater<void> 的函数调用运算符调用内建运算符比较指针,则它产生严格全序,即使内建的 operator> 不如此。此严格全序在特化 std::less<void>std::greater<void>std::less_equal<void>std::greater_equal<void> 间一致,亦与对应的内建运算符所强加的部分顺序一致。

(C++14 起)

标准库提供 std::greater 在不指定 T 时的特化,使得参数类型和返回类型留待推导。

实现 x > y 并推导参数和返回类型的函数对象
(类模板特化)
(C++14 起)

成员类型

 
类型 定义
result_type(C++17 中弃用) bool
first_argument_type(C++17 中弃用) T
second_argument_type(C++17 中弃用) T
(C++20 前)

成员函数

operator()
检查第一参数是否大于第二个
(公开成员函数)

std::greater::operator()

bool operator()( const T& lhs, const T& rhs ) const;
(C++14 前)
constexpr bool operator()( const T& lhs, const T& rhs ) const;
(C++14 起)

检查 lhs 是否大于 rhs

参数

lhs, rhs - 要比较的值

返回值

lhs > rhs 则为 true ,否则为 false

异常

(无)

可能的实现

constexpr bool operator()(const T &lhs, const T &rhs) const 
{
    return lhs > rhs;
}

参阅

实现 x < y 的函数对象
(类模板)