Как сортировать векторы с помощью функции lexicographical_compare() C++

Kak Sortirovat Vektory S Pomos U Funkcii Lexicographical Compare C



Функция представляет собой набор инструкций, выполняющих определенную задачу. Он используется, чтобы сделать код организованным, модульным и пригодным для повторного использования. В C++ функции играют важную роль в упрощении кода. Например, « лексикографический_сравнить() ” используется для лексикографического сравнения двух последовательностей или диапазонов.

В этом подробном руководстве мы продемонстрируем функцию «lexicographical_compare()» на C++ с программой.

Что такое функция «lexicographical_compare()» в C++

В C++ функция «lexicograpfical_compare()» — очень эффективная операция для сравнения и сортировки элементов в последовательности (лексикографический порядок). Он предоставляет возможность определить соответствующий порядок, который является результатом сравнения последовательностей, таких как диапазоны и строки. Эта функция доступна в C++ с помощью « <алгоритм> заголовочный файл.







Синтаксис



Вот синтаксис функции «lexicographical_compare()» в C++:



шаблон < сорт InputIter1, сорт InputIter2 >
логический лексикографический_сравните ( InputIter1 первый1, InputIter1 последний1, InputIter2 первый2, InputIter2 последний2 ) ;

Согласно приведенному выше кодексу, « лексикографический_сравнить() ” принимает две пары диапазонов: “ первый1 ' и ' последний1 » входные итераторы для первого диапазона и « первый2 ' и ' последний2 ” итераторы ввода для диапазона секунд. Он соответствует обоим элементам диапазона в лексикографическом порядке.





Тип возврата: Он возвращает логическое значение (true или false). Он вернет true, если первый диапазон лексикографически меньше, чем второй диапазон, в противном случае вернет false.

Исключения: Если во время сравнения будет обнаружена ошибка, будет выдано исключение.



Как сортировать векторы с помощью функции lexicographical_compare() C++

Функция «lexicographical_compare()» часто используется в методах сортировки для определения порядка элементов. Он соответствует соответствующему порядку элементов, пока диапазон не будет закончен.

Пример функции lexicograpical_compare() для сортировки и сравнения векторов строк

Давайте посмотрим на предоставленный пример, который демонстрирует « Сортировать() ” метод с “ лексикографический_сравнить() ”:

#include <иопоток>
#include <вектор>
#include <алгоритм>
с использованием пространство имен станд. ;

Здесь:

  • ” используется для операций ввода и вывода.

<вектор> ” — это контейнерный класс стандартной библиотеки C++, который используется для хранения шаблонов, предлагающих возможности динамического массива.

  • <алгоритм> » используется для доступа к методу «sort()» для функции «lexicographical_compare()».
  • используя пространство имен std ” упоминается как директива, которая использует все имена из пространства имен без явного упоминания префикса “std”.

Далее внутри « основной() ”, мы инициализировали два вектора “ вектор1 ' и ' вектор2 ” с той же строкой. После этого использовал « Сортировать() ” для сортировки элементов в лексикографическом порядке обоих векторов с помощью “ vect1.begin() ' и ' вектор1.конец() диапазон итераторов для «vect1» и « вектор2.начать() ' и ' вектор2.конец() 'диапазон для 'vect2'. Затем вызвал « лексикографический_сравнить() », которая принимает четыре аргумента для обоих векторов.

Результаты будут сохранены с помощью « логический » введите « результат » и возвращает true, если диапазон «vect1» лексикографически меньше, чем диапазон «vect2», и false в противном случае. Наконец, примените « если ” для отображения результатов. Если “ результат » верно, это означает, что «vect1» лексикографически « > ', чем 'vect2'. В противном случае будет выполнено условие else:

инт основной ( ) {
вектор < нить > вектор1 '=' { 'Весна' , 'Лето' , 'Осень' , 'Зима' } ;
вектор < нить > вектор2 '=' { 'Весна' , 'Лето' } ;

Сортировать ( вектор1. начинать ( ) , вектор1. конец ( ) ) ;
Сортировать ( вектор2. начинать ( ) , вектор2. конец ( ) ) ;
// сравниваем оба вектора с помощью lexicographical_compare()
логический результат '=' лексикографический_сравните (
вектор1. начинать ( ) , вектор1. конец ( ) ,
вектор2. начинать ( ) , вектор2. конец ( )
) ;

если ( результат ) {
cout << 'vect1 лексикографически больше, чем vect2' << конец ;
} еще если ( лексикографический_сравните (
вектор2. начинать ( ) , вектор2. конец ( ) ,
вектор1. начинать ( ) , вектор1. конец ( )
) ) {
cout << 'vect1 лексикографически меньше, чем vect2' << конец ;
} еще {
cout << 'вектор1 лексикографически равен вектору2' << конец ;
}
возвращаться 0 ;
}

Выход

Вот и все! Вы узнали о « лексикографический_сравнить() ” в C++.

Заключение

В C++ функция «lexicographical_compare()» используется для сортировки и сопоставления последовательности элементов в лексическом порядке. Алгоритм сортировки с методом «lexicograpgical_compare()» широко применяется для нахождения относительного порядка. В этом уроке мы продемонстрировали функцию «lexicographical_compare()» в C++.