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
C++26
TODOC++23
TODOC++20
TODOC++17
TODOC++14
TODOC++11
TODOSee also
TODO
This page was last modified on 2024-03-23