Функция lexicographical_compare
Функция lexicographical_compare сравнивает
две последовательности лексикографически, то есть
посимвольно или поэлементно, в порядке их следования.
В первый и второй параметры мы передаем итераторы начала
и конца первой последовательности, в третий и четвертый -
итераторы начала и конца второй последовательности.
Функция возвращает true, если первая
последовательность лексикографически меньше второй,
и false в противном случае.
Синтаксис
lexicographical_compare(first1, last1, first2, last2)
Пример
Давайте сравним две строки "abcde"
и "abcfg":
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "abcfg";
bool res = lexicographical_compare(
str1.begin(), str1.end(),
str2.begin(), str2.end()
);
cout << res << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте сравним две строки "abcde"
и "abcde". Так как строки равны,
функция вернет false:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string str1 = "abcde";
string str2 = "abcde";
bool res = lexicographical_compare(
str1.begin(), str1.end(),
str2.begin(), str2.end()
);
cout << res << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте сравним два вектора {1, 2, 3, 4, 5}
и {1, 2, 3, 4, 6}:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> vec1 = {1, 2, 3, 4, 5};
vector<int> vec2 = {1, 2, 3, 4, 6};
bool res = lexicographical_compare(
vec1.begin(), vec1.end(),
vec2.begin(), vec2.end()
);
cout << res << endl;
return 0;
}
Результат выполнения кода:
1
Смотрите также
-
функция
equal,
которая проверяет равенство двух последовательностей -
функция
mismatch,
которая находит первое несовпадение элементов -
функция
is_sorted,
которая проверяет, отсортирована ли последовательность -
функция
includes,
которая проверяет вхождение одной отсортированной последовательности в другую