lexicographical_compare() в C++ STL
C++ STL предлагает множество утилит для решения основных повседневных проблем. Сравнение значений всегда необходимо, но иногда нам также нужно сравнивать строки. Поэтому lexicographical_compare() используется для сравнения строк .
Он обычно используется в словарях для упорядочивания слов в алфавитном порядке; это влечет за собой последовательное сравнение элементов, которые имеют одинаковое положение в обоих диапазонах, до тех пор, пока один элемент не будет равен другому. Лексикографическое сравнение является следствием сравнения этих первых несовпадающих компонентов. Эта функция определена в заголовке <algorithm> .
Он имеет следующие две реализации:
Синтаксис 1:
lexicographical_compare(iter1 beg1, iter1 end1, iter2 beg2, iter2 end2)
Шаблон:
template bool lexicographical_compare(iter1 beg1, iter1 end1, iter2 beg2, iter2 end2) { while (beg1!=end1) { if (beg2==end2 || *beg2<*beg1) return false; else if (*beg1<*beg2) return true; ++beg1; ++beg2; } return (beg2!=end2); }
Параметры:
- beg1: введите итератор в начальную позицию первой последовательности.
- end1: введите итератор в конечную позицию первой последовательности.
- beg2: введите итератор в начальную позицию второй последовательности.
- end2: введите итератор в конечную позицию второй последовательности.
Возвращаемое значение: возвращает логическое значение true, если range1 строго лексикографически меньше, чем range2, иначе возвращает false.
Пример:
Синтаксис 2:
lexicographical_compare(iter1 beg1, iter1 end1, iter2 beg2, iter2 end2, Compare comp)
Шаблон:
template bool lexicographical_compare(iter1 beg1, iter1 end1, iter2 beg2, iter2 end2) { while (beg1!=end1) { if (beg2==end2 || *beg2<*beg1) return false; else if (*beg1<*beg2) return true; ++beg1; ++beg2; } return (beg2!=end2); }
Параметры:
- beg1: введите итератор в начальную позицию первой последовательности.
- end1: введите итератор в конечную позицию первой последовательности.
- beg2: введите итератор в начальную позицию второй последовательности.
- end2: введите итератор в конечную позицию второй последовательности.
- comp: функция сравнения, которая возвращает логическое значение true/false для каждого сравниваемого элемента. Эта функция принимает два аргумента. Это может быть указатель на функцию или объект функции, и он не может изменять значения.
Возвращаемое значение: возвращает логическое значение true, если range1 строго лексикографически меньше, чем range2, иначе возвращает false.
Пример:
Применение: Сравнение строк обычно можно использовать в словаре , где нам нужно разместить слова в лексикографическом порядке. Примером этого может быть поиск слова, которое встречается 1-м в словаре среди заданного набора слов.
Исключение в lexicographical_compare(): генерируется исключение, если выдается либо сравнение элементов, либо операция на итераторе. Если аргументы недействительны, они вызывают неопределенное поведение.
Эта статья предоставлена Манджитом Сингхом . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.