Kuidas sortida vektoreid kasutades lexicographical_compare() funktsiooni C++

Kuidas Sortida Vektoreid Kasutades Lexicographical Compare Funktsiooni C



Funktsioon on juhiste kogum, mis täidab konkreetset ülesannet. Seda kasutatakse koodi korrastamiseks, modulaarseks ja korduvkasutatavaks muutmiseks. C++-s mängivad funktsioonid koodi lihtsaks muutmisel olulist rolli. Näiteks ' leksikograafiline_võrdle() ” funktsiooni kasutatakse kahe jada või vahemiku leksikograafiliseks võrdlemiseks.

Selles põhjalikus juhendis demonstreerime programmiga C++ funktsiooni 'lexicoographical_compare()'.

Mis on C++ funktsioon 'lexicographical_compare()'.

C++-s on funktsioon 'lexicograpfical_compare()' väga tõhus toiming elementide võrdlemiseks ja sortimiseks jadas (leksikograafiline järjekord). See võimaldab määrata vastava järjestuse, mis on jadade (nt vahemikud ja stringid) võrdlemise tulemus. See funktsioon on C++-s juurdepääsetav, kasutades ' ” päisefail.







Süntaks



Siin on funktsiooni 'lexicoographical_compare()' süntaks C++ keeles:



malli < klass InputIter1, klass InputIter2 >
bool leksikograafiline_võrdle ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Vastavalt ülaltoodud koodile on ' leksikograafiline_võrdle() funktsioon aktsepteerib kahte paari vahemikke esimene 1 ” ja „ viimane1 ' sisendi iteraatorid esimese vahemiku jaoks ja ' esimene2 ” ja „ viimane2 ” sisendi iteraatorid vahemiku sekundi jaoks. See sobib mõlema vahemiku elemendiga leksikograafilises järjekorras.





Tagastamise tüüp: See tagastab tõeväärtuse (tõene või väär). See tagastab tõene, kui esimene vahemik on leksikograafiliselt väiksem kui teine ​​vahemik, vastasel juhul tagastab vale.

Erandid: Kui võrdluse käigus leitakse viga, teeb see erandi.



Kuidas sortida vektoreid kasutades lexicographical_compare() funktsiooni C++

Funktsiooni 'lexicoographical_compare()' kasutatakse sageli sortimistehnikates elementide järjekorra väljaselgitamiseks. See ühtib elementide vastava järjekorraga, kuni vahemik on lõppenud.

Näide lexicograpical_compare() funktsioonist Sorteeri ja võrdle stringi vektoreid

Vaatame esitatud näidet, mis näitab sorteeri() ' meetod koos ' leksikograafiline_võrdle() ”:

#include
#include
#include
kasutades nimeruum std ;

Siin:

  • ” kasutatakse sisend- ja väljundtoimingute jaoks.

” on C++ standardse teegi konteinerklass ja seda kasutatakse dünaamilise massiivi võimalusi pakkuvate mallide hoidmiseks.

  • ” päisefaili kasutatakse funktsiooni „lexicoographical_compare()” meetodile „sort()” juurdepääsuks.
  • kasutades nimeruumi std ” nimetatakse direktiiviks, mis kasutab kõiki nimeruumi nimesid ilma eesliidet „std” selgesõnaliselt mainimata.

Järgmisena, sees peamine () 'funktsioon, initsialiseerisime kaks vektorit' vektor1 ” ja „ vektor2 ” sama nööriga. Pärast seda kasutati ' sorteeri() ' meetod elementide sortimiseks mõlema vektori leksikograafilises järjekorras koos ' vect1.begin() ” ja „ vector1.end() ” iteraatorite vahemik on „vec1” ja „ vect2.begin() ” ja „ vect2.end() ” vahemik „vect2” jaoks. Seejärel kutsus esile ' leksikograafiline_võrdle() ” funktsioon, mis võtab mõlema vektori jaoks neli argumenti.

Tulemused salvestatakse valikuga ' bool ' tippige ' tulemus ” muutuja ja tagastab tõene, kui vahemik „vect1” on leksikograafiliselt väiksem kui vahemik „vect2” ja muul juhul väär. Lõpuks rakendage ' kui ” avaldus tulemuste kuvamiseks. Kui ' tulemus ' on tõsi, see tähendab, et 'vect1' on leksikograafiliselt ' > ' kui 'vect2'. Vastasel juhul täidetakse muu tingimus:

int peamine ( ) {
vektor < string > vektor1 = { 'Kevad' , 'Suvi' , 'Sügis' , 'Talv' } ;
vektor < string > vektor2 = { 'Kevad' , 'Suvi' } ;

sorteerida ( vektor1. alustada ( ) , vektor1. lõpp ( ) ) ;
sorteerida ( vektor2. alustada ( ) , vektor2. lõpp ( ) ) ;
// võrdle mõlemat vektorit kasutades lexicographical_compare()
bool tulemus = leksikograafiline_võrdle (
vektor1. alustada ( ) , vektor1. lõpp ( ) ,
vektor2. alustada ( ) , vektor2. lõpp ( )
) ;

kui ( tulemus ) {
cout << 'vect1 on leksikograafiliselt suurem kui vect2' << endl ;
} muidu kui ( leksikograafiline_võrdle (
vektor2. alustada ( ) , vektor2. lõpp ( ) ,
vektor1. alustada ( ) , vektor1. lõpp ( )
) ) {
cout << 'vect1 on leksikograafiliselt väiksem kui vect2' << endl ;
} muidu {
cout << 'vect1 on leksikograafiliselt võrdne vektoriga 2' << endl ;
}
tagasi 0 ;
}

Väljund

See on kõik! Olete õppinud ' leksikograafiline_võrdle() ” funktsioon C++ keeles.

Järeldus

C++ puhul kasutatakse funktsiooni 'lexicoographical_compare()' elementide järjestuse sortimiseks ja sobitamiseks leksikaalses järjekorras. Suhtelise järjekorra leidmiseks on laialdaselt rakendatud sortimisalgoritmi 'lexicograpgical_compare()' meetodiga. Selles õpetuses demonstreerisime C++ funktsiooni 'lexicoographical_compare()'.