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