Kaip rūšiuoti vektorius naudojant lexicographical_compare() funkciją C++

Kaip Rusiuoti Vektorius Naudojant Lexicographical Compare Funkcija C



Funkcija yra instrukcijų rinkinys, kuris atlieka konkrečią užduotį. Jis naudojamas kodams organizuoti, moduliuoti ir pakartotinai naudoti. C++ kalboje funkcijos vaidina svarbų vaidmenį, kad kodas būtų paprastas. Pavyzdžiui, „ leksikografinis_palyginti() “ funkcija naudojama dviejų sekų ar diapazonų palyginimui leksikografiškai.

Š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 ' “ antraštės failą.







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.

“ yra C++ standartinė bibliotekos konteinerio klasė ir naudojama šablonams, siūlantiems dinaminio masyvo galimybes, laikyti.

  • “ 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++.