Hoe vectoren te sorteren met behulp van lexicographical_compare() Functie C++

Hoe Vectoren Te Sorteren Met Behulp Van Lexicographical Compare Functie C



De functie is een reeks instructies die een specifieke taak uitvoeren. Het wordt gebruikt om code georganiseerd, modulair en herbruikbaar te maken. In C++ spelen functies een belangrijke rol om code eenvoudig te maken. Bijvoorbeeld de ' lexicografisch_vergelijken() ” functie wordt gebruikt om twee reeksen of reeksen lexicografisch te vergelijken.

In deze uitgebreide gids demonstreren we de functie 'lexicographical_compare()' in C++ met het programma.

Wat is de functie 'lexicographical_compare()' in C++

In C++ is de functie 'lexicografisch_vergelijken()' een zeer effectieve bewerking om elementen in een reeks (lexicografische volgorde) te vergelijken en te sorteren. Het biedt de mogelijkheid om de respectieve volgorde te bepalen die het resultaat is van het vergelijken van reeksen, zoals reeksen en reeksen. Deze functie is toegankelijk in C++ door gebruik te maken van de ' ” header-bestand.







Syntaxis



Hier is de syntaxis van de functie 'lexicographical_compare()' in C++:



sjabloon < klas InvoerIter1, klas InvoerIter2 >
boel lexicografisch_vergelijken ( InputIter1 eerste1, InputIter1 laatste1, InputIter2 eerste2, InputIter2 laatste2 ) ;

Volgens de hierboven verstrekte code, de ' lexicografisch_vergelijken() ” functie accepteert twee paren bereiken de “ eerste1 ' En ' laatste1 ” invoer iterators voor het eerste bereik en de “ eerste2 ' En ' laatste2 ” voer iterators in voor de bereikseconde. Het komt overeen met beide bereikelementen in lexicografische volgorde.





Retourtype: Het retourneert de booleaanse waarde (true of false). Het retourneert waar als het eerste bereik lexicografisch kleiner is dan het tweede bereik, anders retourneert het onwaar.

Uitzonderingen: Als er tijdens de vergelijking een fout wordt gevonden, wordt er een uitzondering gegenereerd.



Hoe vectoren te sorteren met behulp van lexicographical_compare() Functie C++

De functie 'lexicographical_compare()' wordt vaak gebruikt in sorteertechnieken om de volgorde van het element te achterhalen. Het komt overeen met de respectieve volgorde van de elementen totdat het bereik is voltooid.

Voorbeeld van lexicograpical_compare() Functie Sorteer en vergelijk de tekenreeksvectoren

Laten we eens kijken naar het meegeleverde voorbeeld dat de ' soort() ” methode met de “ lexicografisch_vergelijken() ”:

#include
#include
#include
gebruik makend van naamruimte soa ;

Hier:

  • ” wordt gebruikt voor de invoer- en uitvoerbewerkingen.

” is een C++ standaard bibliotheekcontainerklasse en wordt gebruikt om sjablonen te bevatten die dynamische array-mogelijkheden bieden.

  • Het header-bestand wordt gebruikt om toegang te krijgen tot de methode 'sort()' voor de functie 'lexicographical_compare()'.
  • namespace std; gebruiken ” wordt een richtlijn genoemd die alle namen uit de naamruimte gebruikt zonder expliciet het voorvoegsel “std” te vermelden.

Vervolgens binnen de “ voornaamst() 'functie, we hebben twee vectoren geïnitialiseerd' vector1 ' En ' vector2 ” met dezelfde snaar. Gebruik hierna de ' soort() ' methode om de elementen in lexicografische volgorde van beide vectoren te sorteren met ' vect1.begin() ' En ' vector1.einde() ' iterators bereik voor 'vect1' en ' vect2.begin() ' En ' vector2.end() ” bereik voor “vect2”. Vervolgens riep de ' lexicografisch_vergelijken() ” functie waaraan vier argumenten moeten doorgegeven worden voor beide vectoren.

De resultaten worden opgeslagen met ' boel ” typ de “ resultaat ” variabele en retourneer waar als het bereik “vect1” lexicografisch kleiner is dan het bereik “vect2”, en anders onwaar. Pas ten slotte de ' als ” statement om de resultaten weer te geven. Als de “ resultaat ' is waar, het betekent dat de 'vect1' lexicografisch is ' > ' dan 'vect2'. Anders wordt de else-voorwaarde uitgevoerd:

int voornaamst ( ) {
vector < snaar > vector1 = { 'Lente' , 'Zomer' , 'Herfst' , 'Winter' } ;
vector < snaar > vector2 = { 'Lente' , 'Zomer' } ;

soort ( vector1. beginnen ( ) , vector1. einde ( ) ) ;
soort ( vector2. beginnen ( ) , vector2. einde ( ) ) ;
// vergelijk beide vectoren met behulp van lexicographical_compare()
boel resultaat = lexicografisch_vergelijken (
vector1. beginnen ( ) , vector1. einde ( ) ,
vector2. beginnen ( ) , vector2. einde ( )
) ;

als ( resultaat ) {
cout << 'vect1 is lexicografisch groter dan vect2' << eindel ;
} anders als ( lexicografisch_vergelijken (
vector2. beginnen ( ) , vector2. einde ( ) ,
vector1. beginnen ( ) , vector1. einde ( )
) ) {
cout << 'vect1 is lexicografisch kleiner dan vect2' << eindel ;
} anders {
cout << 'vect1 is lexicografisch gelijk aan vect2' << eindel ;
}
opbrengst 0 ;
}

Uitgang

Dat is alles! Je hebt geleerd over de ' lexicografisch_vergelijken() '-functie in C++.

Conclusie

In C++ wordt de functie 'lexicographical_compare()' gebruikt om de reeks elementen in lexicale volgorde te sorteren en te matchen. Het sorteeralgoritme met de methode 'lexicograpgical_compare()' wordt op grote schaal toegepast om de relatieve volgorde te vinden. In deze zelfstudie hebben we de functie 'lexicographical_compare()' in C++ gedemonstreerd.