std::lexicographical_compare
                Актуально для C++23.
                #include <algorithm>
                Актуально на 2024-03-23.
                Define overload #1
template<class InputIterator1, class InputIterator2>
constexpr bool
lexicographical_compare(InputIterator1 first1, InputIterator1 last1,
                        InputIterator2 first2, InputIterator2 last2);
Сравнивает диапазон [first1, last1] с [first2, last2] лексикографически.
Эквивалентность проверяется с помощью оператора "<".
Вернёт "true" если [first1, last1] меньше [first2, last2], иначе - "false".
Example, possible implementation
Define overload #2
template<class InputIterator1, class InputIterator2, class Compare>
constexpr bool
lexicographical_compare(InputIterator1 first1, InputIterator1 last1,
                        InputIterator2 first2, InputIterator2 last2,
                        Compare comp);
Сравнивает диапазон [first1, last1] с [first2, last2] лексикографически.
Эквивалентность проверяется с помощью бинарного предиката "comp".
Вернёт "true" если [first1, last1] меньше [first2, last2], иначе - "false".
Example, possible implementation
Define overload #3
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2>
bool
lexicographical_compare(ExecutionPolicy&& exec, ForwardIterator1 first1,
                        ForwardIterator1 last1, ForwardIterator2 first2,
                        ForwardIterator2 last2);
TODO
Example, possible implementation
Define overload #4
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2>
bool
lexicographical_compare(ExecutionPolicy&& exec, ForwardIterator1 first1,
                        ForwardIterator1 last1, ForwardIterator2 first2,
                        ForwardIterator2 last2);
TODO
Example, possible implementation
Define overload #5
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2,
class Compare>
bool
lexicographical_compare(ExecutionPolicy&& exec,ForwardIterator1 first1,
                        ForwardIterator1 last1, ForwardIterator2 first2,
                        ForwardIterator2 last2, Compare comp);
TODO
Example, possible implementation
Examples
Example 1:
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
    std::vector<int> v1 {1,2,3,4};
    std::vector<int> v2 {1,2,3,4,5};
    auto res = std::lexicographical_compare(
                std::begin(v1), std::end(v1),
                std::begin(v2), std::end(v2)
    );
    std::cout << std::boolalpha << res << std::endl;
    return 0;
}
true
Changelog
See also
TODO
 This page was last modified on 2024-03-23