名前空間
変種
操作

std::less

提供: cppreference.com
< cpp‎ | utility‎ | functional
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(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++20)
(C++11)
関数呼び出し
(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 less;
(C++14未満)
template<class T =void>
struct less;
(C++14以上)

比較を行うための関数オブジェクト。 特殊化されていなければ、型 T に対する operator< を呼びます。

目次

[編集]特殊化

任意のポインタ型に対する std::less の特殊化は、たとえ組み込みの operator< がそうでなくても、狭義全順序を生成します。 狭義全順序はそのポインタ型に対する std::lessstd::greaterstd::less_equal および std::greater_equal の特殊化に渡って一貫しており、また対応する組み込みの演算子 (<><= および >=) によって与えられる部分順序とも一貫しています。

特殊化 std::less<void> の関数呼び出し演算子がポインタを比較する組み込みの演算子を呼ぶ場合、たとえ組み込みの operator< がそうでなくても、狭義全順序を生成します。 この狭義全順序は特殊化 std::less<void>std::greater<void>std::less_equal<void> および std::greater_equal<void> に渡って一貫しており、また対応する組み込みの演算子によって与えられる部分順序とも一貫しています。

(C++14以上)

標準ライブラリは T が指定されない場合の引数型と戻り値型を推定する std::less の特殊化を提供します。

引数と戻り値の型を推定する x < y を実装する関数オブジェクト
(クラステンプレートの特殊化)[edit]
(C++14以上)

メンバ型

定義
result_type(C++17で非推奨)bool
first_argument_type(C++17で非推奨)T
second_argument_type(C++17で非推奨)T
(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以上)

lhsrhs より小さいかどうか調べます。

引数

lhs, rhs - 比較する値

戻り値

lhs < rhs であれば true、そうでなければ false

例外

(なし)

実装例

constexprbool operator()(const T &lhs, const T &rhs)const{return lhs < rhs;}

[編集]

#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 を実装する関数オブジェクト
(クラステンプレート)[edit]
close