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 '
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.
“
- “
« 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++.