Šiame išsamiame vadove kartu su programa parodysime funkciją „lexicographical_compare()“ C++ kalboje.
Kas yra „lexicographical_compare()“ funkcija C++
C++ kalboje funkcija „lexicograpfical_compare()“ yra labai efektyvi operacija, leidžianti palyginti ir rūšiuoti elementus seka (leksikografine tvarka). Tai suteikia galimybę nustatyti atitinkamą tvarką, kuri yra lyginant sekas, pvz., diapazonus ir eilutes. Ši funkcija pasiekiama C++ naudojant '
Sintaksė
Štai C++ funkcijos „lexicographical_compare()“ sintaksė:
šabloną < klasė InputIter1, klasė InputIter2 >
bool leksikografinis_palyginti ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;
Pagal aukščiau pateiktą kodą „ leksikografinis_palyginti() ' funkcija priima dvi poras diapazonų ' pirmas1 “ ir „ paskutinis1 ' įvesties iteratoriai pirmam diapazonui ir ' pirmas2 “ ir „ paskutinis2 “ įvesties iteratoriai diapazono sekundei. Jis atitinka abu diapazono elementus leksikografine tvarka.
Grąžinimo tipas: Jis grąžina loginę reikšmę (true arba false). Jis grąžins teisingą, kai pirmasis diapazonas yra leksikografiškai mažesnis nei antrasis diapazonas, priešingu atveju grąžinama klaidinga.
Išimtys: Jei palyginimo metu aptinkama klaida, bus daroma išimtis.
Kaip rūšiuoti vektorius naudojant lexicographical_compare() funkciją C++
Funkcija „lexicographical_compare()“ dažnai naudojama rūšiavimo metoduose, siekiant išsiaiškinti elementų tvarką. Jis atitinka atitinkamą elementų tvarką, kol diapazonas bus baigtas.
Funkcijos Lexicograpical_compare() pavyzdys Rūšiuoti ir palyginti eilučių vektorius
Pažiūrėkime pateiktą pavyzdį, kuris parodo „ Rūšiuoti () “ metodas su „ leksikografinis_palyginti() “:
#include#include
#include
naudojant vardų erdvė std ;
Čia:
- “
“ naudojamas įvesties ir išvesties operacijoms.
“
- “
“ antraštės failas naudojamas norint pasiekti „sort()“ metodą funkcijai „lexicographical_palyginti()“. - “ naudojant vardų sritį std “ yra vadinama direktyva, kuri naudoja visus vardus iš vardų erdvės, aiškiai nenurodant priešdėlio „std“.
Toliau, viduje „ pagrindinis () “ funkcija, inicijavome du vektorius “ vektor1 “ ir „ vektor2 “ su ta pačia styga. Po to panaudojo „ Rūšiuoti () “ metodas rūšiuoti elementus leksikografine abiejų vektorių su „ vect1.begin() “ ir „ vektorius1.pabaiga() “ iteratorių diapazonas yra „vect1“ ir „ vect2.begin() “ ir „ vect2.end() “ diapazonas, skirtas „vect2“. Tada iškvietė „ leksikografinis_palyginti() “ funkcija, kuri paima keturis abiejų vektorių argumentus.
Rezultatai bus išsaugoti naudojant „ bool “ įveskite „ rezultatas ” kintamąjį ir grąžina „true“, jei „vect1“ diapazonas leksikografiškai yra mažesnis už „vect2“ diapazoną, o kitu atveju „false“. Galiausiai pritaikykite „ jeigu “, kad būtų rodomi rezultatai. Jei „ rezultatas “ yra tiesa, tai reiškia, kad „vect1“ yra leksikografiškai „ > “ nei „vect2“. Priešingu atveju bus įvykdyta kita sąlyga:
tarpt pagrindinis ( ) {vektorius < styga > vektor1 = { 'Pavasaris' , 'Vasara' , 'Ruduo' , 'Žiema' } ;
vektorius < styga > vektor2 = { 'Pavasaris' , 'Vasara' } ;
rūšiuoti ( vektor1. pradėti ( ) , vect1. galas ( ) ) ;
rūšiuoti ( vektor2. pradėti ( ) , vektor2. galas ( ) ) ;
// palyginkite abu vektorius naudodami lexicographical_compare()
bool rezultatas = leksikografinis_palyginti (
vektor1. pradėti ( ) , vect1. galas ( ) ,
vektor2. pradėti ( ) , vektor2. galas ( )
) ;
jeigu ( rezultatas ) {
cout << 'vect1 yra leksikografiškai didesnis nei vect2' << endl ;
} Kitas jeigu ( leksikografinis_palyginti (
vektor2. pradėti ( ) , vektor2. galas ( ) ,
vektor1. pradėti ( ) , vect1. galas ( )
) ) {
cout << 'vect1 yra leksikografiškai mažesnis nei vect2' << endl ;
} Kitas {
cout << 'vect1 yra leksikografiškai lygus vect2' << endl ;
}
grąžinti 0 ;
}
Išvestis
Tai viskas! Jūs sužinojote apie ' leksikografinis_palyginti() “ funkcija C++.
Išvada
C++ kalboje funkcija „lexicographical_compare()“ naudojama elementų sekai rūšiuoti ir suderinti leksine tvarka. Rūšiavimo algoritmas su „lexicograpgical_compare()“ metodu yra plačiai įdiegtas norint rasti santykinę tvarką. Šioje pamokoje mes demonstravome funkciją „lexicographical_compare()“ C++.