Hur man sorterar vektorer med hjälp av lexicographical_compare() funktionen C++

Hur Man Sorterar Vektorer Med Hjalp Av Lexicographical Compare Funktionen C



Funktionen är en uppsättning instruktioner som utför en specifik uppgift. Det används för att göra koden organiserad, modulär och återanvändbar. I C++ spelar funktioner en viktig roll för att göra koden enkel. Till exempel, ' lexicographical_compare() ”-funktionen används för att jämföra två sekvenser eller intervall lexikografiskt.

I den här omfattande guiden kommer vi att demonstrera funktionen 'lexicographical_compare()' i C++ med programmet.

Vad är funktionen 'lexicographical_compare()' i C++

I C++ är funktionen 'lexicograpfical_compare()' en mycket effektiv operation för att jämföra och sortera element i en sekvens (lexikografisk ordning). Det ger möjlighet att bestämma respektive ordning som är resultatet av att jämföra sekvenser, såsom intervall och strängar. Denna funktion är tillgänglig i C++ genom att använda ' ” header-fil.







Syntax



Här är syntaxen för funktionen 'lexicographical_compare()' i C++:



mall < klass InputIter1, klass InputIter2 >
bool lexikografisk_jämför ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Enligt den ovan tillhandahållna koden, ' lexicographical_compare() '-funktionen accepterar två par av intervall, ' först1 ' och ' sista1 ' inmatningsiteratorer för det första intervallet och ' första 2 ' och ' sista 2 ” in iteratorer för intervallsekunden. Den matchar båda intervallelementen i lexikografisk ordning.





Returtyp: Det returnerar det booleska värdet (true eller false). Det kommer att returnera sant när det första intervallet är lexikografiskt mindre än det andra intervallet returnerar annars falskt.

Undantag: Om det finns ett fel under jämförelsen kommer det att skapa ett undantag.



Hur man sorterar vektorer med hjälp av lexicographical_compare() funktionen C++

Funktionen 'lexicography_compare()' används ofta i sorteringstekniker för att ta reda på elementets ordning. Det matchar respektive ordning på elementen tills intervallet är klart.

Exempel på lexicograpical_compare() Funktion Sortera och jämför strängvektorerna

Låt oss kolla in det medföljande exemplet som visar ' sortera() '-metoden med ' lexicographical_compare() ”:

#include
#inkludera
#inkludera
använder sig av namnutrymme std ;

Här:

  • ' ” används för inmatnings- och utmatningsoperationer.

' ” är en C++ standard bibliotekscontainerklass och används för att hålla mallar som erbjuder dynamiska arrayfunktioner.

  • ' ” header-filen används för att komma åt metoden “sort()” för funktionen “lexicography_compare()”.
  • ' använder namnutrymme std ” hänvisas till som ett direktiv som använder alla namn från namnområdet utan att uttryckligen nämna prefixet ”std”.

Därefter inuti ' main() '-funktionen, initierade vi två vektorer ' vect1 ' och ' vect2 ” med samma sträng. Efter detta använde ' sortera() ”-metod för att sortera elementen i lexikografisk ordning av båda vektorerna med ” vect1.begin() ' och ' vector1.end() ' iteratorintervall för 'vect1' och ' vect2.begin() ' och ' vect2.end() ' område för 'vect2'. Sedan åberopade ' lexicographical_compare() ” funktion som tar fyra argument för båda vektorerna.

Resultaten kommer att sparas med ' bool ' skriv in ' resultat ” variabel och returnerar true om intervallet ”vect1” är lexikografiskt mindre än intervallet ”vect2”, och annars är det falskt. Till sist, använd ' om ” uttalande för att visa resultaten. Om ' resultat ' är sant betyder det att 'vect1' är lexikografiskt ' > ” än ”vect2”. Annars kommer det andra villkoret att exekveras:

int huvud ( ) {
vektor < sträng > vect1 = { 'Vår' , 'Sommar' , 'Höst' , 'Vinter' } ;
vektor < sträng > vect2 = { 'Vår' , 'Sommar' } ;

sortera ( vect1. Börja ( ) , vect1. slutet ( ) ) ;
sortera ( vect2. Börja ( ) , vect2. slutet ( ) ) ;
// jämför båda vektorerna med hjälp av lexicographical_compare()
bool resultat = lexikografisk_jämför (
vect1. Börja ( ) , vect1. slutet ( ) ,
vect2. Börja ( ) , vect2. slutet ( )
) ;

om ( resultat ) {
cout << 'vect1 är lexikografiskt större än vect2' << endl ;
} annan om ( lexikografisk_jämför (
vect2. Börja ( ) , vect2. slutet ( ) ,
vect1. Börja ( ) , vect1. slutet ( )
) ) {
cout << 'vect1 är lexikografiskt mindre än vect2' << endl ;
} annan {
cout << 'vect1 är lexikografiskt lika med vect2' << endl ;
}
lämna tillbaka 0 ;
}

Produktion

Det är allt! Du har lärt dig om ' lexicographical_compare() ”-funktionen i C++.

Slutsats

I C++ används funktionen 'lexicographical_compare()' för att sortera och matcha sekvensen av element i lexikalisk ordning. Sorteringsalgoritmen med metoden 'lexicograpgical_compare()' är allmänt implementerad för att hitta den relativa ordningen. I den här handledningen demonstrerade vi funktionen 'lexicographical_compare()' i C++.