Ako triediť vektory pomocou funkcie lexicographical_compare() C++

Ako Triedit Vektory Pomocou Funkcie Lexicographical Compare C



Funkcia je súbor inštrukcií, ktoré vykonávajú konkrétnu úlohu. Používa sa na to, aby bol kód organizovaný, modulárny a opakovane použiteľný. V C++ zohrávajú funkcie dôležitú úlohu pri zjednodušovaní kódu. Napríklad „ lexicographical_compare() ” sa používa na lexikografické porovnanie dvoch sekvencií alebo rozsahov.

V tejto obsiahlej príručke predvedieme funkciu „lexicographical_compare()“ v C++ s programom.

Čo je funkcia „lexicographical_compare()“ v C++

V C++ je funkcia „lexicographical_compare()“ veľmi efektívnou operáciou na porovnávanie a triedenie prvkov v sekvencii (lexikografickom poradí). Poskytuje možnosť určiť príslušné poradie, ktoré je výsledkom porovnávania sekvencií, ako sú rozsahy a reťazce. Táto funkcia je dostupná v C++ pomocou „ ” hlavičkový súbor.







Syntax



Tu je syntax funkcie „lexicographical_compare()“ v C++:



šablóna < trieda InputIter1, trieda InputIter2 >
bool lexikografický_porovnať ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Podľa vyššie uvedeného kódexu „ lexicographical_compare() funkcia akceptuje dva páry rozsahov, prvý1 “ a „ posledný1 ” vstupné iterátory pre prvý rozsah a “ prvý2 “ a „ posledný2 ” vstupné iterátory pre druhý rozsah. Zodpovedá obom prvkom rozsahu v lexikografickom poradí.





Typ návratu: Vráti boolovskú hodnotu (pravda alebo nepravda). Vráti hodnotu true, keď je prvý rozsah lexikograficky menší ako druhý rozsah, inak vráti hodnotu false.

Výnimky: Ak sa počas porovnávania nájde chyba, vyvolá výnimku.



Ako triediť vektory pomocou funkcie lexicographical_compare() C++

Funkcia „lexicographical_compare()“ sa často používa v technikách triedenia na zistenie poradia prvku. Zodpovedá príslušnému poradiu prvkov, kým sa rozsah nedokončí.

Príklad funkcie lexicographical_compare() Triedenie a porovnanie vektorov reťazcov

Pozrime sa na poskytnutý príklad, ktorý demonštruje „ zoradiť () “ metóda s “ lexicographical_compare() “:

#include
#include
#include
použitím menný priestor std ;

Tu:

  • “ sa používa pre vstupné a výstupné operácie.

” je štandardná trieda kontajnerov knižníc C++ a používa sa na uchovávanie šablón, ktoré ponúkajú možnosti dynamického poľa.

  • ” hlavičkový súbor sa používa na prístup k metóde “sort()” pre funkciu “lexicographical_compare()”.
  • pomocou menného priestoru std “ sa označuje ako direktíva, ktorá používa všetky mená z menného priestoru bez toho, aby sa výslovne uvádzala predpona „std“.

Ďalej vo vnútri „ Hlavná() “, inicializovali sme dva vektory “ vect1 “ a „ vect2 “ s rovnakým reťazcom. Potom použite „ zoradiť () ” metóda na triedenie prvkov v lexikografickom poradí oboch vektorov pomocou “ vect1.begin() “ a „ vector1.end() rozsah iterátorov pre „vect1“ a „ vect2.begin() “ a „ vect2.end() rozsah pre „vect2“. Potom sa vyvolalo „ lexicographical_compare() ” funkcia, ktorá má štyri argumenty pre oba vektory.

Výsledky sa uložia pomocou „ bool “ zadajte „ výsledok premenná ” a vráti hodnotu true, ak je rozsah „vect1“ lexikograficky menší ako rozsah „vect2“, a v opačnom prípade má hodnotu false. Nakoniec použite „ ak “, aby sa zobrazili výsledky. Ak „ výsledok “ je pravda, to znamená, že „vect1“ je lexikograficky „ > “ než „vect2“. V opačnom prípade sa vykoná podmienka else:

int Hlavná ( ) {
vektor < reťazec > vect1 = { 'Jar' , 'Leto' , 'jeseň' , 'zima' } ;
vektor < reťazec > vect2 = { 'Jar' , 'Leto' } ;

triediť ( vect1. začať ( ) , vect1. koniec ( ) ) ;
triediť ( vect2. začať ( ) , vect2. koniec ( ) ) ;
// porovnaj oba vektory pomocou lexicographical_compare()
bool výsledok = lexikografický_porovnať (
vect1. začať ( ) , vect1. koniec ( ) ,
vect2. začať ( ) , vect2. koniec ( )
) ;

ak ( výsledok ) {
cout << 'vect1 je lexikograficky väčší ako vect2' << endl ;
} inak ak ( lexikografický_porovnať (
vect2. začať ( ) , vect2. koniec ( ) ,
vect1. začať ( ) , vect1. koniec ( )
) ) {
cout << 'vect1 je lexikograficky menej ako vect2' << endl ;
} inak {
cout << 'vect1 sa lexikograficky rovná vect2' << endl ;
}
vrátiť 0 ;
}

Výkon

To je všetko! Dozvedeli ste sa o „ lexicographical_compare() Funkcia ” v C++.

Záver

V C++ sa funkcia „lexicographical_compare()“ používa na triedenie a porovnávanie postupnosti prvkov v lexikálnom poradí. Algoritmus triedenia s metódou „lexicograpgical_compare()“ je široko implementovaný na nájdenie relatívneho poradia. V tomto návode sme demonštrovali funkciu „lexicographical_compare()“ v C++.