Cum se sortează vectorii folosind funcția lexicographical_compare() C++

Cum Se Sorteaza Vectorii Folosind Functia Lexicographical Compare C



Funcția este un set de instrucțiuni care îndeplinesc o anumită sarcină. Este folosit pentru a face codul organizat, modular și reutilizabil. În C++, funcțiile joacă un rol important pentru a simplifica codul. De exemplu, „ comparare_lexicografică() ” funcția este utilizată pentru a compara două secvențe sau intervale lexicografic.

În acest ghid cuprinzător, vom demonstra funcția „lexicographical_compare()” în C++ cu programul.

Ce este funcția „lexicographical_compare()” în C++

În C++, funcția „lexicographical_compare()” este o operațiune foarte eficientă de comparare și sortare a elementelor dintr-o secvență (ordine lexicografică). Oferă facilitatea de a determina ordinea respectivă care este rezultatul comparării secvențelor, cum ar fi intervalele și șirurile de caractere. Această funcție este accesibilă în C++ utilizând „ ” fișier antet.





Sintaxă



Iată sintaxa funcției „lexicographical_compare()” în C++:



șablon < clasă InputIter1, clasă InputIter2 >
bool comparare_lexicografică ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Conform codului furnizat mai sus, „ comparare_lexicografică() funcția acceptă două perechi de intervale „ primul 1 ' și ' ultimul 1 ” iteratoare de intrare pentru primul interval și „ primul 2 ' și ' ultimul2 ” iteratoare de intrare pentru intervalul secund. Se potrivește ambelor elemente ale intervalului în ordine lexicografică.





Tip returnare: Returnează valoarea booleană (adevărat sau fals). Va returna true când primul interval este mai mic din punct de vedere lexicografic decât al doilea interval, altfel returnează false.

Excepții: Dacă se găsește o eroare în timpul comparației, va arunca o excepție.



Cum se sortează vectorii folosind funcția lexicographical_compare() C++

Funcția „lexicographical_compare()” este folosită frecvent în tehnicile de sortare pentru a afla ordinea elementului. Se potrivește cu ordinea respectivă a elementelor până la sfârșitul intervalului.

Exemplu de lexicograpical_compare() Funcția Sortare și comparare a vectorilor șir

Să verificăm exemplul oferit care demonstrează „ fel() ” metoda cu “ comparare_lexicografică() ”:

#include
#include
#include
folosind spatiu de nume std ;

Aici:

  • ” este utilizat pentru operațiunile de intrare și ieșire.

” este o clasă de container de bibliotecă standard C++ și este folosită pentru a deține șabloane care oferă capabilități de matrice dinamică.

  • ” fișierul antet este folosit pentru a accesa metoda „sort()” pentru funcția „lexicographical_compare()”.
  • folosind namespace std ” este denumită o directivă care utilizează toate numele din spațiul de nume fără a menționa în mod explicit prefixul „std”.

În continuare, în interiorul „ principal() ”, am inițializat doi vectori” vect1 ' și ' vect2 ” cu aceeași sfoară. După aceasta, a folosit „ fel() ” metoda de sortare a elementelor în ordine lexicografică a ambilor vectori cu “ vect1.begin() ' și ' vector1.end() ” interval de iteratori pentru „vect1” și „ vect2.begin() ' și ' vect2.end() ” pentru „vect2”. Apoi, a invocat „ comparare_lexicografică() ” funcție care ia patru argumente pentru ambii vectori.

Rezultatele vor fi salvate cu „ bool ” tastați „ rezultat ” variabilă și returnează adevărat dacă intervalul „vect1” este lexicografic mai mic decât intervalul „vect2” și fals în caz contrar. În cele din urmă, aplicați „ dacă ” declarație pentru a afișa rezultatele. Dacă „ rezultat ” este adevărat, înseamnă că „vect1” este lexicografic „ > ” decât „vect2”. În caz contrar, se va executa condiția else:

int principal ( ) {
vector < şir > vect1 = { 'Arc' , 'Vară' , 'Toamnă' , 'Iarnă' } ;
vector < şir > vect2 = { 'Arc' , 'Vară' } ;

fel ( vect1. ÎNCEPE ( ) , vector1. Sfârşit ( ) ) ;
fel ( vect2. ÎNCEPE ( ) , vect2. Sfârşit ( ) ) ;
// compara ambii vectori folosind lexicographical_compare()
bool rezultat = comparare_lexicografică (
vect1. ÎNCEPE ( ) , vector1. Sfârşit ( ) ,
vect2. ÎNCEPE ( ) , vect2. Sfârşit ( )
) ;

dacă ( rezultat ) {
cout << „vect1 este mai mare din punct de vedere lexicografic decât vect2” << endl ;
} altfel dacă ( comparare_lexicografică (
vect2. ÎNCEPE ( ) , vect2. Sfârşit ( ) ,
vect1. ÎNCEPE ( ) , vector1. Sfârşit ( )
) ) {
cout << „vect1 este lexicografic mai mic decât vect2” << endl ;
} altfel {
cout << „vect1 este lexicografic egal cu vect2” << endl ;
}
întoarcere 0 ;
}

Ieșire

Asta e tot! Ați aflat despre „ comparare_lexicografică() ” în C++.

Concluzie

În C++, funcția „lexicographical_compare()” este folosită pentru a sorta și potrivi secvența de elemente în ordine lexicală. Algoritmul de sortare cu metoda „lexicograpgical_compare()” este implementat pe scară largă pentru a găsi ordinea relativă. În acest tutorial, am demonstrat funcția „lexicographical_compare()” în C++.