Kako razvrstiti vektorje s funkcijo lexicographical_compare() C++

Kako Razvrstiti Vektorje S Funkcijo Lexicographical Compare C



Funkcija je niz navodil, ki izvajajo določeno nalogo. Uporablja se, da naredi kodo organizirano, modularno in ponovno uporabno. V C++ imajo funkcije pomembno vlogo pri poenostavitvi kode. Na primer, ' lexicographical_compare() ” se uporablja za leksikografsko primerjavo dveh zaporedij ali obsegov.

V tem obsežnem vodniku bomo prikazali funkcijo 'lexicographical_compare()' v C++ s programom.

Kaj je funkcija “lexicographical_compare()” v C++

V C++ je funkcija “lexicograffical_compare()” zelo učinkovita operacija za primerjavo in razvrščanje elementov v zaporedju (leksikografski vrstni red). Omogoča možnost določanja zadevnega vrstnega reda, ki je rezultat primerjave zaporedij, kot so obsegi in nizi. Ta funkcija je dostopna v C++ z uporabo ' ” naslovna datoteka.







Sintaksa



Tukaj je sintaksa funkcije 'lexicographical_compare()' v C++:



predlogo < razred InputIter1, razred InputIter2 >
bool leksikografska_primerjaj ( InputIter1 prvi1, InputIter1 zadnji1, InputIter2 prvi2, InputIter2 zadnji2 ) ;

V skladu z zgoraj navedeno kodo je » lexicographical_compare() ' funkcija sprejme dva para obsegov ' prvi1 « in » zadnji1 ” vnosnih iteratorjev za prvi obseg in prvi2 « in » zadnji2 ” vnesite iteratorje za sekundo obsega. Ujema se z obema elementoma obsega v leksikografskem vrstnem redu.





Vrsta vračila: Vrne logično vrednost (true ali false). Vrne true, ko je prvi obseg leksikografsko manjši od drugega obsega, sicer vrne false.

Izjeme: Če je med primerjavo odkrita napaka, bo sprožila izjemo.



Kako razvrstiti vektorje s funkcijo lexicographical_compare() C++

Funkcija 'lexicographical_compare()' se pogosto uporablja v tehnikah razvrščanja, da ugotovi vrstni red elementa. Ujema se z ustreznim vrstnim redom elementov, dokler obseg ni končan.

Primer funkcije lexicografical_compare() Razvrsti in primerjaj vektorje nizov

Oglejmo si navedeni primer, ki prikazuje ' razvrsti() ' metoda z ' lexicographical_compare() ”:

#include
#include
#include
uporabo imenski prostor std ;

Tukaj:

  • ” se uporablja za vhodne in izhodne operacije.

” je vsebniški razred standardne knjižnice C++ in se uporablja za hrambo predlog, ki ponujajo zmožnosti dinamičnega polja.

  • « se uporablja za dostop do metode »sort()« za funkcijo »lexicographical_compare()«.
  • uporaba imenskega prostora std ” se imenuje direktiva, ki uporablja vsa imena iz imenskega prostora brez izrecne omembe predpone “std”.

Nato znotraj » glavni () ' funkcijo smo inicializirali dva vektorja ' vect1 « in » vect2 ” z istim nizom. Po tem uporabil ' razvrsti() ' za razvrščanje elementov v leksikografskem vrstnem redu obeh vektorjev z ' vect1.begin() « in » vector1.end() ” obseg iteratorjev za „vect1” in „ vect2.begin() « in » vect2.end() « obseg za »vect2«. Nato priklical ' lexicographical_compare() ” funkcijo, ki sprejme štiri argumente za oba vektorja.

Rezultati bodo shranjeni z ' bool ' vnesite ' rezultat ” spremenljivko in vrne true, če je obseg „vect1” leksikografsko manjši od obsega „vect2”, v nasprotnem primeru pa false. Na koncu uporabite » če ” za prikaz rezultatov. Če je ' rezultat »je res, to pomeni, da je »vect1« leksikografsko » > « kot »vect2«. V nasprotnem primeru bo izveden pogoj else:

int glavni ( ) {
vektor < vrvica > vect1 = { 'pomlad' , 'poletje' , 'Jesen' , 'Zima' } ;
vektor < vrvica > vect2 = { 'pomlad' , 'poletje' } ;

vrsta ( vect1. začeti ( ) , vect1. konec ( ) ) ;
vrsta ( vect2. začeti ( ) , vect2. konec ( ) ) ;
// primerjaj oba vektorja z uporabo lexicographical_compare()
bool rezultat = leksikografska_primerjaj (
vect1. začeti ( ) , vect1. konec ( ) ,
vect2. začeti ( ) , vect2. konec ( )
) ;

če ( rezultat ) {
cout << 'vect1 je leksikografsko večji od vect2' << konec ;
} drugače če ( leksikografska_primerjaj (
vect2. začeti ( ) , vect2. konec ( ) ,
vect1. začeti ( ) , vect1. konec ( )
) ) {
cout << 'vect1 je leksikografsko manjši od vect2' << konec ;
} drugače {
cout << 'vect1 je leksikografsko enak vect2' << konec ;
}
vrnitev 0 ;
}

Izhod

To je vse! Spoznali ste ' lexicographical_compare() ” v C++.

Zaključek

V C++ se funkcija “lexicographical_compare()” uporablja za razvrščanje in ujemanje zaporedja elementov v slovarskem vrstnem redu. Algoritem za razvrščanje z metodo 'lexicograpgical_compare()' je široko uporabljen za iskanje relativnega vrstnega reda. V tej vadnici smo prikazali funkcijo 'lexicographical_compare()' v C++.