std::lexicographical_compare_three_way
From cppreference.com
| Defined in header <algorithm>
|
||
| template< class InputIt1, class InputIt2, class Cmp > constexpr auto lexicographical_compare_three_way( InputIt1 first1, InputIt1 last1, |
(1) | (since C++20) |
| template< class InputIt1, class InputIt2 > constexpr auto lexicographical_compare_three_way( InputIt1 first1, InputIt1 last1, |
(2) | (since C++20) |
Lexicographically compares two ranges [first1, last1) and [first2, last2) using three-way comparison and produces a result of the strongest applicable comparison category type.
1) Behaves as if defined as follows:
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) Behaves as if defined as follows:
return std::lexicographical_compare_three_way( first1, last1, first2, last2, std::compare_three_way());
Parameters
| first1, last1 | - | the first range of elements to examine |
| first2, last2 | - | the second range of elements to examine |
| comp | - | a function object type. The behavior is undefined if its return type is not one of the three comparison category types (strong_ordering, weak_ordering, or partial_ordering) |
| Type requirements | ||
-InputIt1, InputIt2 must meet the requirements of LegacyInputIterator.
| ||
Return value
A comparison category type as defined above.
Example
| This section is incomplete Reason: no example |
See also
| returns true if one range is lexicographically less than another (function template) | |
| (C++20) |
function object implementing x <=> y (class) |