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 „
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.
“
- “
” 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++.