std::lexicographical_compare_three_way
定义于头文件 <algorithm>
|
||
template< class InputIt1, class InputIt2, class Cmp > constexpr auto lexicographical_compare_three_way( InputIt1 first1, InputIt1 last1, |
(1) | (C++20 起) |
template< class InputIt1, class InputIt2 > constexpr auto lexicographical_compare_three_way( InputIt1 first1, InputIt1 last1, |
(2) | (C++20 起) |
用三路比较,以字典序比较二个范围 [first1, last1) 和 [first2, last2) ,并产生最强可应用比较类别类型的结果。
1) 表现为定义如下:
for ( ; first1 != last1 && first2 != last2; void(++first1), void(++first2) ) if (auto cmp = comp(*first1, *first2); cmp != 0) return cmp; return first1 != last1 ? std::strong_ordering::greater : first2 != last2 ? std::strong_ordering::less : std::strong_ordering::equal;
2) 表现为定义如下:
return std::lexicographical_compare_three_way( first1, last1, first2, last2, std::compare_three_way());
参数
first1, last1 | - | 要检验的第一元素范围 |
first2, last2 | - | 要检验的第二元素范围 |
comp | - | 函数对象类型。若其返回类型不是三个比较类别类型( strong_ordering 、 weak_ordering 或 partial_ordering )之一则行为未定义。
|
类型要求 | ||
-InputIt1, InputIt2 必须满足遗留输入迭代器 (LegacyInputIterator) 的要求。
|
返回值
定义如上的比较类别类型的值。
示例
本节未完成 原因:暂无示例 |
参阅
当一个范围按字典顺序小于另一个范围时,返回 true (函数模板) | |
(C++20) |
实现 x <=> y 的函数对象 (类) |