std::less
提供: cppreference.com
< cpp | utility | functional
ヘッダ <functional> で定義 | ||
template<class T > struct less; | (C++14未満) | |
template<class T =void> struct less; | (C++14以上) | |
比較を行うための関数オブジェクト。 特殊化されていなければ、型 T
に対する operator< を呼びます。
目次 |
[編集]特殊化
任意のポインタ型に対する std::less
の特殊化は、たとえ組み込みの operator< がそうでなくても、狭義全順序を生成します。 狭義全順序はそのポインタ型に対する std::less、 std::greater、 std::less_equal および std::greater_equal の特殊化に渡って一貫しており、また対応する組み込みの演算子 (<
、 >
、 <=
および >=
) によって与えられる部分順序とも一貫しています。
特殊化 | (C++14以上) |
標準ライブラリは
| (C++14以上) |
メンバ型
| (C++20未満) |
[編集]メンバ関数
operator() | 第1引数が第2引数より小さいかどうか調べます (パブリックメンバ関数) |
std::less::operator()
bool operator()(const T& lhs, const T& rhs )const; | (C++14未満) | |
constexprbool operator()(const T& lhs, const T& rhs )const; | (C++14以上) | |
lhs
が rhs
より小さいかどうか調べます。
引数
lhs, rhs | - | 比較する値 |
戻り値
lhs < rhs であれば true、そうでなければ false。
例外
(なし)
実装例
constexprbool operator()(const T &lhs, const T &rhs)const{return lhs < rhs;} |
[編集]例
Run this code
#include <functional>#include <iostream> template<typename A, typename B, typename U = std::less<>>bool f(A a, B b, U u = U()){return u(a, b);} int main(){std::cout<<std::boolalpha;std::cout<< f(5, 20)<<'\n';std::cout<< f(100, 10)<<'\n';}
出力:
true false
[編集]関連項目
x > y を実装する関数オブジェクト (クラステンプレート) |