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

Kak Da Sortirate Vektori S Pomosta Na Funkciata Lexicographical Compare C



Функцията е набор от инструкции, които изпълняват конкретна задача. Използва се, за да направи кода организиран, модулен и многократно използваем. В C++ функциите играят важна роля за опростяване на кода. Например „ lexicographical_compare() ” се използва за лексикографско сравняване на две последователности или диапазони.

В това изчерпателно ръководство ще демонстрираме функцията „lexicographical_compare()“ в C++ с програмата.

Какво представлява функцията “lexicographical_compare()” в C++

В C++ функцията “lexicograffical_compare()” е много ефективна операция за сравняване и сортиране на елементи в последователност (лексикографски ред). Той предоставя възможност за определяне на съответния ред, който е резултат от сравняване на последователности, като диапазони и низове. Тази функция е достъпна в C++ с помощта на „ <алгоритъм> ” заглавен файл.







Синтаксис



Ето синтаксиса на функцията „lexicographical_compare()“ в C++:



шаблон < клас InputIter1, клас InputIter2 >
bool лексикографско_сравнение ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Съгласно предоставения по-горе код, „ lexicographical_compare() ” функцията приема две двойки диапазони на „ първи1 ' и ' последно1 ' входни итератори за първия диапазон и ' първи2 ' и ' последно2 ” входни итератори за диапазона секунди. Той съвпада с двата елемента на диапазон в лексикографски ред.





Тип връщане: Връща булевата стойност (вярно или невярно). Той ще върне true, когато първият диапазон е лексикографски по-малък от втория диапазон, в противен случай връща false.

Изключения: Ако има открита грешка по време на сравнението, тя ще хвърли изключение.



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

Функцията „lexicographical_compare()“ често се използва в техниките за сортиране, за да се открие редът на елемента. Той съвпада със съответния ред на елементите до завършване на диапазона.

Пример за функция lexicograpical_compare() Сортирайте и сравнете низовите вектори

Нека да разгледаме предоставения пример, който демонстрира „ вид() ' метод с ' lexicographical_compare() ”:

#include
#include <вектор>
#include <алгоритъм>
използвайки пространство от имена std ;

Тук:

  • ” се използва за входни и изходни операции.

<вектор> ” е C++ стандартен библиотечен контейнерен клас и се използва за съхраняване на шаблони, които предлагат възможности за динамичен масив.

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

След това вътре в „ основен () ' функция, инициализирахме два вектора ' vect1 ' и ' vect2 ” със същия низ. След това използвахте „ вид() ' метод за сортиране на елементите в лексикографски ред на двата вектора с ' vect1.begin() ' и ' вектор1.край() ” диапазон на итератори за „vect1” и „ vect2.begin() ' и ' vect2.end() ” диапазон за „vect2”. След това извика „ lexicographical_compare() ” функция, която приема четири аргумента и за двата вектора.

Резултатите ще бъдат запазени с „ bool ' въведете ' резултат ” променлива и връща true, ако диапазонът „vect1” е лексикографски по-малък от диапазона „vect2”, и false в противен случай. Накрая приложете „ ако ”, за да покажете резултатите. Ако „ резултат ” е вярно, това означава, че „vect1” е лексикографски „ > ”, отколкото „vect2”. В противен случай ще се изпълни условието else:

вътр основен ( ) {
вектор < низ > vect1 = { 'пролет' , 'лято' , 'есен' , 'зима' } ;
вектор < низ > vect2 = { 'пролет' , 'лято' } ;

вид ( vect1. започвам ( ) , vect1. край ( ) ) ;
вид ( vect2. започвам ( ) , vect2. край ( ) ) ;
// сравняваме двата вектора с помощта на lexicographical_compare()
bool резултат = лексикографско_сравнение (
vect1. започвам ( ) , vect1. край ( ) ,
vect2. започвам ( ) , vect2. край ( )
) ;

ако ( резултат ) {
cout << 'vect1 е лексикографски по-голям от vect2' << endl ;
} друго ако ( лексикографско_сравнение (
vect2. започвам ( ) , vect2. край ( ) ,
vect1. започвам ( ) , vect1. край ( )
) ) {
cout << 'vect1 е лексикографски по-малко от vect2' << endl ;
} друго {
cout << 'vect1 е лексикографски равен на vect2' << endl ;
}
връщане 0 ;
}

Изход

Това е всичко! Научихте за „ lexicographical_compare() ” в C++.

Заключение

В C++ функцията “lexicographical_compare()” се използва за сортиране и съпоставяне на последователността от елементи в лексикален ред. Алгоритъмът за сортиране с метода „lexicograpgical_compare()“ е широко внедрен за намиране на относителния ред. В този урок демонстрирахме функцията „lexicographical_compare()“ в C++.