The Wayback Machine - https://web.archive.org/web/20180601204752/http://ja.cppreference.com:80/w/cpp/algorithm/lexicographical_compare_3way
名前空間
変種
操作

std::lexicographical_compare_3way

提供: cppreference.com
< cpp‎ | algorithm
 
 
アルゴリズムライブラリ
実行ポリシー (C++17)
非変更シーケンス操作
(C++11)(C++11)(C++11)
(C++17)
lexicographical_compare_3way
(C++20)

変更シーケンス操作
未初期化記憶域の操作
分割操作
ソート操作
バイナリサーチ操作
集合操作 (ソート済み範囲用)
ヒープ操作
(C++11)
最小/最大演算
(C++11)
(C++17)
順列
数値演算
C のライブラリ
 
ヘッダ <algorithm> で定義
template<class InputIt1, class InputIt2, class Cmp >

constexprauto lexicographical_compare_3way( InputIt1 b1, InputIt1 e1,
                                             InputIt2 b2, InputIt2 e2,
                                             Cmp comp)

-> std::common_comparison_category_t<decltype(comp(*b1, *b2)), std::strong_ordering>;
(1) (C++20およびそれ以降)
template<class InputIt1, class InputIt2 >

constexprauto lexicographical_compare_3way( InputIt1 b1, InputIt1 e1,

                                             InputIt2 b2, InputIt2 e2);
(2) (C++20およびそれ以降)

三方比較を使用して2つの範囲 [first1, last1) および [first2, last2) を比較し、適用可能な最も強い比較カテゴリ型を生成します。

1) 以下のように定義されているかのように動作します。
for(; b1 != e1 && b2 != e2;void(++b1), void(++b2))if(auto cmp = comp(*b1,*b2); cmp !=0)return cmp;return b1 != e1 ? std::strong_ordering::greater: b2 != e2 ? std::strong_ordering::less: std::strong_ordering::equal;
2) 以下のように定義されているかのように動作します。
return std::lexicographical_compare_3way(b1, e1, b2, e2, [](constauto& t, constauto& u){return std::compare_3way(t, u);});

目次

[編集]引数

first1, last1 - 1つめの調べる要素の範囲
first2, last2 - 2つめの調べる要素の範囲
comp - 関数オブジェクトの型。 戻り値の型が5つの比較カテゴリ型 (strong_equality, weak_equality, strong_ordering, weak_ordering, partial_ordering) のいずれかでない場合、動作は未定義です。
型の要件
-
InputIt1, InputIt2InputIterator の要件を満たさなければなりません。

[編集]戻り値

上で定義されている通りの比較カテゴリ型。

[編集]

[編集]関連項目

三方比較を使用して2つの値を比較します
(関数テンプレート)[edit]
close