Kako sortirati vektore pomoću funkcije lexicographical_compare() C++

Kako Sortirati Vektore Pomocu Funkcije Lexicographical Compare C



Funkcija je skup uputa koje izvršavaju određeni zadatak. Koristi se za organiziranje koda, modularnost i višekratnu upotrebu. U C++-u funkcije igraju važnu ulogu kako bi kôd bio jednostavan. Na primjer, ' leksikografska_usporedba() ” funkcija se koristi za leksikografsku usporedbu dva niza ili raspona.

U ovom opsežnom vodiču demonstrirat ćemo funkciju 'lexicographical_compare()' u C++ s programom.

Što je funkcija “lexicographical_compare()” u C++

U C++, funkcija 'lexicograffical_compare()' vrlo je učinkovita operacija za usporedbu i sortiranje elemenata u nizu (leksikografski poredak). Omogućuje određivanje dotičnog redoslijeda koji je rezultat usporedbe nizova, kao što su rasponi i nizovi. Ova funkcija je dostupna u C++ pomoću ' ” datoteka zaglavlja.







Sintaksa



Evo sintakse funkcije “lexicographical_compare()” u C++:



šablona < razreda InputIter1, razreda InputIter2 >
bool leksikografski_usporedi ( InputIter1 prvi1, InputIter1 zadnji1, InputIter2 prvi2, InputIter2 zadnji2 ) ;

Prema gore navedenom kodu, ' leksikografska_usporedba() ' funkcija prihvaća dva para raspona ' prvo1 ' i ' posljednji1 ” ulaznih iteratora za prvi raspon i “ prvo2 ' i ' posljednji2 ” unesite iteratore za raspon sekunde. Odgovara oba elementa raspona u leksikografskom poretku.





Vrsta povrata: Vraća Booleovu vrijednost (true ili false). Vratit će true kada je prvi raspon leksikografski manji od drugog raspona, inače vraća false.

Iznimke: Ako se tijekom usporedbe pronađe pogreška, izbacit će iznimku.



Kako sortirati vektore pomoću funkcije lexicographical_compare() C++

Funkcija 'lexicographical_compare()' često se koristi u tehnikama sortiranja kako bi se saznao redoslijed elementa. Usklađuje odgovarajući redoslijed elemenata dok se raspon ne završi.

Primjer funkcije lexicograpical_compare() Sortiraj i usporedi vektore nizova

Pogledajmo navedeni primjer koji pokazuje ' vrsta() ' metoda s ' leksikografska_usporedba() ”:

#include
#uključi
#include
korištenjem imenski prostor std ;

Ovdje:

  • ” koristi se za ulazne i izlazne operacije.

” je C++ standardna klasa spremnika biblioteke i koristi se za držanje predložaka koji nude mogućnosti dinamičkog niza.

  • ” datoteka zaglavlja koristi se za pristup metodi “sort()” za funkciju “lexicographical_compare()”.
  • koristeći prostor imena std ” naziva se direktiva koja koristi sva imena iz imenskog prostora bez eksplicitnog spominjanja prefiksa “std”.

Dalje, unutar ' glavni() ” funkciju, inicijalizirali smo dva vektora “ vect1 ' i ' vect2 ” s istim nizom. Nakon toga upotrijebio sam ' vrsta() ” metoda za sortiranje elemenata u leksikografskom redoslijedu oba vektora s “ vect1.begin() ' i ' vektor1.kraj() ” raspon iteratora za „vect1” i „ vect2.begin() ' i ' vect2.end() ” raspon za „vect2”. Zatim je pozvao ' leksikografska_usporedba() ” funkcija koja uzima četiri argumenta za oba vektora.

Rezultati će biti spremljeni s ' bool ” upišite “ proizlaziti ” varijable i vraća true ako je raspon “vect1” leksikografski manji od raspona “vect2”, a u suprotnom daje false. Na kraju primijenite ' ako ” za prikaz rezultata. Ako ' proizlaziti ” je istina to znači da je “vect1” leksikografski “ > ” nego „vect2”. Inače će se izvršiti else uvjet:

int glavni ( ) {
vektor < niz > vect1 = { 'Proljeće' , 'Ljeto' , 'Jesen' , 'Zima' } ;
vektor < niz > vect2 = { 'Proljeće' , 'Ljeto' } ;

vrsta ( vect1. početi ( ) , vect1. kraj ( ) ) ;
vrsta ( vect2. početi ( ) , vect2. kraj ( ) ) ;
// usporedi oba vektora koristeći lexicographical_compare()
bool proizlaziti = leksikografski_usporedi (
vect1. početi ( ) , vect1. kraj ( ) ,
vect2. početi ( ) , vect2. kraj ( )
) ;

ako ( proizlaziti ) {
cout << 'vect1 je leksikografski veći od vect2' << endl ;
} drugo ako ( leksikografski_usporedi (
vect2. početi ( ) , vect2. kraj ( ) ,
vect1. početi ( ) , vect1. kraj ( )
) ) {
cout << 'vect1 je leksikografski manji od vect2' << endl ;
} drugo {
cout << 'vect1 je leksikografski jednak vect2' << endl ;
}
povratak 0 ;
}

Izlaz

To je sve! Naučili ste o ' leksikografska_usporedba() ” funkcija u C++.

Zaključak

U C++, funkcija 'lexicographical_compare()' koristi se za sortiranje i podudaranje slijeda elemenata u leksičkom redoslijedu. Algoritam sortiranja s metodom 'lexicograpgical_compare()' široko je implementiran za pronalaženje relativnog poretka. U ovom vodiču demonstrirali smo funkciju 'lexicographical_compare()' u C++.