Kako uporabljati funkcijo Upper_bound() v C++

Kako Uporabljati Funkcijo Upper Bound V C



Z uporabo programskega jezika C++ je mogoče izdelati različne programe, vključno z igrami, grafiko, spletnimi strežniki in še več. Vendar pa bomo včasih morda morali izvesti nekaj operacij s podatki v naših programih, kot je iskanje, razvrščanje ali iskanje največje ali najmanjše vrednosti med vrsto elementov. Ena od funkcij, ki jo je mogoče uporabiti za iskanje zgornje meje vrednosti v razvrščenem obsegu elementov, je upper_bound().

Kaj je funkcija upper_bound() v C++

Funkcija upper_bound() v C++ je funkcija, ki vzame razvrščen obseg elementov in vrednost kot argumente ter vrne iterator, ki kaže na prvi element v obsegu, ki je večji od vrednosti.







Ima dve različni vrsti argumentov:



num zgornja_meja ( na enem. prvi , na enem. zadnji , vrednost )

Iteratorja, ki določata obseg elementov, ki jih je treba pregledati, sta prvi in ​​zadnji. Uporabljeni interval vsebuje vse elemente od prvega elementa do konca, vendar ne vključuje elementa, označenega z zadnjim. Vrednost je vrednost, s katero primerjamo elemente.



num zgornja_meja ( na enem. prvi , na enem. zadnji ,  vrednost, primerjaj komp )

V tem primeru binarna funkcija comp ustvari vrednost, ki jo je mogoče pretvoriti v bool, in sprejme dva parametra istega tipa kot elemente obsega. Če določen pogoj narekuje, da prvi argument ni višji od drugega, mora funkcija vrniti resnični rezultat, če ne, mora vrniti false.





Kako uporabljati funkcijo upper_bound() v C++

Funkcijo upper_bound() lahko uporabite za iskanje zgornje meje vrednosti v razvrščenem obsegu elementov v različnih situacijah. Uporabimo ga lahko na primer za iskanje položaja elementa v razvrščeni matriki ali vektorju ali za iskanje naslednjega večjega elementa v nizu ali zemljevidu. Tukaj je nekaj primerov uporabe funkcije upper_bound() v C++:

1. primer: uporaba funkcije upper_bound() za iskanje položaja elementa v razvrščeni matriki

Tukaj je primer, ki uporablja funkcijo upper_bound(), da poišče položaj elementa v razvrščenem nizu celih števil in ga prikaže na zaslonu:



#include

#include

uporabo imenski prostor std ;

int glavni ( )

{

int niz [ ] = { petnajst , 35 , Štiri, pet , 55 , 65 } ;

int a = sizeof ( niz ) / sizeof ( niz [ 0 ] ) ;

cout << 'Matrika vsebuje: ' ;

za ( int jaz = 0 ; jaz < a ; jaz ++ )

cout << niz [ jaz ] << ' ' ;

cout << ' \n ' ;

int b = Štiri, pet ; // deklariraj in inicializiraj vrednost

int * str = Zgornja meja ( array, niz + a, b ) ;

cout << 'Zgornja meja' << b << ' je na položaju: ' << ( str - niz ) << ' \n ' ; // prikaži položaj z aritmetiko kazalca

vrnitev 0 ;

}

Najprej program definira potrebne datoteke glave in matriko, ki vsebuje števila, nato pa uporabi funkcijo sizeof(), da dobi velikost matrike. Nato se uporabi zanka for za prikaz elementov matrike, nato pa se deklarira celo število, katerega položaj v matriki se določi s kazalcem in se prikaže v izhodu:

Primer 2: Uporaba funkcije upper_bound() za iskanje naslednjega večjega elementa v nizu

Tukaj je primer kode, ki uporablja funkcijo upper_bound() za iskanje naslednjega večjega elementa od dane vrednosti v nizu celih števil in ga prikaže na zaslonu:

#include

#include

#include

uporabo imenski prostor std ;

int glavni ( )

{

set < int > na enem = { petnajst , 25 , 35 , Štiri, pet , 55 } ; // deklariraj in inicializiraj niz celih števil

cout << 'Dane številke:' ;

za ( avto a : na enem ) // prikaži elemente niza z uporabo zanke for na osnovi obsega

cout << a << ' ' ;

cout << ' \n ' ;

int a = Štiri, pet ; // deklariraj in inicializiraj vrednost

avto to = Zgornja meja ( na enem. začeti ( ) , na enem. konec ( ) , a ) ; // poiščite zgornjo mejo x v nizu z uporabo upper_bound()

če ( to ! = na enem. konec ( ) ) // preveri, če je iterator veljaven

cout << 'Naslednje večje število od ' << a << ' je ' << * to << ' \n ' ; // prikaži element z uporabo operaterja dereference

drugače

cout << 'Ni večjega števila kot' << a << ' \n ' ; // prikaže sporočilo, če tak element ni najden

vrnitev 0 ;

}

Najprej koda definira potrebne datoteke glave in nato je definiran vektor petih elementov, nato pa je vektor prikazan s ključno besedo auto, saj lahko samodejno nastavi vrsto podatkov elementov. Nato se deklarira spremenljivka z vrednostjo 45, ki se nato primerja z vektorjem, definiranim s funkcijo upper_bound(), nato pa prikaže rezultat primerjave:

Zaključek

Funkcija upper_bound() je funkcija, ki vrne iterator, ki kaže na prvi element v razvrščenem obsegu, ki je večji od dane vrednosti. Če želite poiskati prvo številko v intervalu, ki je večje ali enako določenemu številu, uporabite funkcijo upper_bound() v C++. To je lahko uporabno za naloge, kot je iskanje naslednje najvišje številke na seznamu ali iskanje prvega elementa v razvrščenem nizu, ki je večji od danega praga.