Ako používať funkciu Upper_bound() v C++

Ako Pouzivat Funkciu Upper Bound V C



Pomocou programovacieho jazyka C++ je možné vytvoriť rôzne programy vrátane hier, grafiky, webových serverov a ďalších. Niekedy však možno budeme musieť vykonať nejaké operácie s údajmi v našich programoch, ako je vyhľadávanie, triedenie alebo nájdenie maximálnej alebo minimálnej hodnoty medzi radom prvkov. Jednou z funkcií, ktoré možno použiť na nájdenie hornej hranice hodnoty v zoradenom rozsahu prvkov, je horná hranica ().

Čo je funkcia upper_bound() v C++

Funkcia upper_bound() v C++ je funkcia, ktorá berie zoradený rozsah prvkov a hodnotu ako argumenty a vracia iterátor ukazujúci na prvý prvok v rozsahu, ktorý je väčší ako hodnota.







Má dva rôzne typy argumentov:



num horna_medza ( na jeden. najprv , na jeden. posledný , hodnota )

Iterátory, ktoré špecifikujú rozsah prvkov, ktoré sa majú preskúmať, sú prvé a posledné. Použitý interval obsahuje všetky prvky od prvého prvku až po koniec, ale nezahŕňa prvok označený posledným. Hodnota je hodnota, s ktorou sa majú porovnávať prvky.



num horna_medza ( na jeden. najprv , na jeden. posledný ,  hodnota, porovnanie komp )

V tomto prípade binárna funkcia comp vytvorí hodnotu, ktorú možno previesť na bool a akceptuje dva parametre rovnakého typu ako položky rozsahu. Ak určitá podmienka určuje, že prvý argument nie je vyšší ako druhý, funkcia musí vrátiť pravdivý výsledok a ak nie, mala by vrátiť nepravdu.





Ako používať funkciu upper_bound() v C++

Funkciu upper_bound() možno použiť na nájdenie hornej hranice hodnoty v zoradenom rozsahu prvkov v rôznych situáciách. Môžeme ho použiť napríklad na nájdenie polohy prvku v zoradenom poli alebo vektore alebo na nájdenie ďalšieho väčšieho prvku v množine alebo mape. Tu je niekoľko príkladov, ako používať funkciu upper_bound() v C++:

Príklad 1: Použitie funkcie upper_bound() na nájdenie pozície prvku v triedenom poli

Tu je príklad, ktorý používa funkciu upper_bound() na nájdenie pozície prvku v zoradenom poli celých čísel a jej zobrazenie na obrazovke:



#include

#include

použitím menný priestor std ;

int Hlavná ( )

{

int pole [ ] = { pätnásť , 35 , Štyri, päť , 55 , 65 } ;

int a = veľkosť ( pole ) / veľkosť ( pole [ 0 ] ) ;

cout << 'Pole obsahuje: ' ;

pre ( int i = 0 ; i < a ; i ++ )

cout << pole [ i ] << '' ;

cout << ' \n ' ;

int b = Štyri, päť ; // deklaruje a inicializuje hodnotu

int * p = Horná hranica ( pole, pole + a, b ) ;

cout << 'Horná hranica' << b << 'je na pozícii:' << ( p - pole ) << ' \n ' ; // zobrazenie pozície pomocou aritmetiky ukazovateľa

vrátiť 0 ;

}

Najprv program definuje potrebné hlavičkové súbory a pole obsahujúce čísla a potom použije funkciu sizeof() na získanie veľkosti poľa. Ďalej sa na zobrazenie prvkov poľa použije cyklus for a potom sa deklaruje celé číslo, ktorého poloha v poli sa určí pomocou ukazovateľa a zobrazí sa vo výstupe:

Príklad 2: Použitie funkcie upper_bound() na nájdenie ďalšieho väčšieho prvku v množine

Tu je príklad kódu, ktorý používa funkciu upper_bound() na nájdenie ďalšieho väčšieho prvku ako je daná hodnota v množine celých čísel a jeho zobrazenie na obrazovke:

#include

#include

#include

použitím menný priestor std ;

int Hlavná ( )

{

nastaviť < int > na jeden = { pätnásť , 25 , 35 , Štyri, päť , 55 } ; // deklaruje a inicializuje množinu celých čísel

cout << 'Dané čísla: ' ;

pre ( auto a : na jeden ) // zobrazenie prvkov sady pomocou cyklu for založeného na rozsahu

cout << a << '' ;

cout << ' \n ' ;

int a = Štyri, päť ; // deklaruje a inicializuje hodnotu

auto to = Horná hranica ( na jeden. začať ( ) , na jeden. koniec ( ) , a ) ; // nájdite hornú hranicu x v množine pomocou upper_bound()

ak ( to ! = na jeden. koniec ( ) ) // skontrolujte, či je iterátor platný

cout << 'Ďalšie vyššie číslo ako' << a << ' je ' << * to << ' \n ' ; // zobrazenie prvku pomocou operátora dereference

inak

cout << 'Neexistuje vyššie číslo ako' << a << ' \n ' ; // zobrazí správu, ak sa takýto prvok nenájde

vrátiť 0 ;

}

Najprv kód definuje potrebné hlavičkové súbory a potom sa definuje vektor piatich prvkov, potom sa vektor zobrazí pomocou kľúčového slova auto, pretože dokáže automaticky nastaviť dátový typ prvkov. Ďalej je deklarovaná premenná s hodnotou 45, ktorá je potom porovnaná s vektorom definovaným pomocou funkcie upper_bound() a následne zobrazuje výsledok porovnania:

Záver

Funkcia upper_bound() je funkcia, ktorá vracia iterátor ukazujúci na prvý prvok v zoradenom rozsahu, ktorý je väčší ako daná hodnota. Ak chcete nájsť prvé číslo v intervale, ktorý je väčší alebo rovný zadanému číslu, použite funkciu upper_bound() v C++. To môže byť užitočné pri úlohách, ako je nájdenie ďalšieho najvyššieho čísla v zozname alebo nájdenie prvého prvku v zoradenom poli, ktorý je väčší ako daný prah.