Kako koristiti funkciju Upper_bound() u C++

Kako Koristiti Funkciju Upper Bound U C



Različiti programi, uključujući igre, grafiku, web poslužitelje i još mnogo toga, mogu se izraditi pomoću programskog jezika C++. Međutim, ponekad ćemo možda trebati izvršiti neke operacije na podacima u našim programima, kao što je pretraživanje, sortiranje ili pronalaženje maksimalne ili minimalne vrijednosti među nizom elemenata. Jedna od funkcija koja se može koristiti za pronalaženje gornje granice vrijednosti u sortiranom rasponu elemenata je upper_bound().

Što je funkcija upper_bound() u C++

Funkcija upper_bound() u C++ je funkcija koja uzima sortirani raspon elemenata i vrijednost kao argumente i vraća iterator koji pokazuje na prvi element u rasponu koji je veći od vrijednosti.







Ima dvije različite vrste argumenata:



num gornja_granica ( na jedan. prvi , na jedan. posljednji , vrijednost )

Iteratori koji specificiraju raspon elemenata koji se ispituju su prvi i zadnji. Korišteni interval sadrži sve elemente od prvog elementa do kraja, ali ne uključuje element naznačen zadnjim. Vrijednost je vrijednost s kojom se elementi uspoređuju.



num gornja_granica ( na jedan. prvi , na jedan. posljednji ,  vrijednost, usporedi komp )

U ovom slučaju, binarna funkcija comp proizvodi vrijednost koja se može pretvoriti u bool i prihvaća dva parametra iste vrste kao stavke raspona. Ako određeni uvjet nalaže da prvi argument nije viši od drugog, funkcija mora vratiti istiniti rezultat, a ako ne, treba vratiti lažni.





Kako koristiti funkciju upper_bound() u C++

Funkcija upper_bound() može se koristiti za pronalaženje gornje granice vrijednosti u sortiranom rasponu elemenata u različitim situacijama. Na primjer, možemo ga koristiti za pronalaženje položaja elementa u sortiranom nizu ili vektoru ili za pronalaženje sljedećeg većeg elementa u skupu ili mapi. Evo nekoliko primjera kako koristiti funkciju upper_bound() u C++:

Primjer 1: Upotreba funkcije upper_bound() za pronalaženje položaja elementa u sortiranom nizu

Evo primjera koji koristi funkciju upper_bound() za pronalaženje položaja elementa u sortiranom nizu cijelih brojeva i njegovo prikazivanje na zaslonu:



#include

#include

korištenjem imenski prostor std ;

int glavni ( )

{

int niz [ ] = { petnaest , 35 , Četiri pet , 55 , 65 } ;

int a = veličina ( niz ) / veličina ( niz [ 0 ] ) ;

cout << 'Niz sadrži: ' ;

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

cout << niz [ ja ] << ' ' ;

cout << ' \n ' ;

int b = Četiri pet ; // deklarirati i inicijalizirati vrijednost

int * str = Gornja granica ( niz, niz + a, b ) ;

cout << 'Gornja granica od ' << b << ' je na poziciji: ' << ( str - niz ) << ' \n ' ; // prikaz položaja pomoću aritmetike pokazivača

povratak 0 ;

}

Prvo program definira potrebne datoteke zaglavlja i niz koji sadrži brojeve, a zatim koristi funkciju sizeof() da dobije veličinu niza. Zatim se for petlja koristi za prikaz elemenata niza, a zatim se deklarira cijeli broj čiji se položaj u nizu određuje pomoću pokazivača i prikazuje se u izlazu:

Primjer 2: Upotreba funkcije upper_bound() za pronalaženje sljedećeg većeg elementa u skupu

Ovdje je primjer koda koji koristi funkciju upper_bound() za pronalaženje sljedećeg većeg elementa od zadane vrijednosti u skupu cijelih brojeva i njegovo prikazivanje na zaslonu:

#include

#include

#uključi

korištenjem imenski prostor std ;

int glavni ( )

{

postaviti < int > na jedan = { petnaest , 25 , 35 , Četiri pet , 55 } ; // deklarirati i inicijalizirati skup cijelih brojeva

cout << 'Zadani brojevi: ' ;

za ( auto a : na jedan ) // prikaz elemenata skupa pomoću petlje for na temelju raspona

cout << a << ' ' ;

cout << ' \n ' ;

int a = Četiri pet ; // deklarirati i inicijalizirati vrijednost

auto to = Gornja granica ( na jedan. početi ( ) , na jedan. kraj ( ) , a ) ; // pronađite gornju granicu x u skupu koristeći upper_bound()

ako ( to ! = na jedan. kraj ( ) ) // provjerimo je li iterator valjan

cout << 'Sljedeći veći broj od' << a << ' je ' << * to << ' \n ' ; // prikaz elementa pomoću operatora dereferenciranja

drugo

cout << 'Nema većeg broja od' << a << ' \n ' ; // prikazati poruku ako takav element nije pronađen

povratak 0 ;

}

Prvo kod definira potrebne datoteke zaglavlja, a zatim se definira vektor od pet elemenata, zatim se vektor prikazuje pomoću ključne riječi auto jer može automatski postaviti vrstu podataka elemenata. Zatim se deklarira varijabla koja ima vrijednost 45 koja se zatim uspoređuje s vektorom definiranim pomoću funkcije upper_bound() i nakon toga prikazuje rezultat usporedbe:

Zaključak

Funkcija upper_bound() je funkcija koja vraća iterator koji pokazuje na prvi element u sortiranom rasponu koji je veći od zadane vrijednosti. Da biste locirali prvi broj u intervalu koji je veći ili jednak određenom broju, upotrijebite funkciju upper_bound() u C++. To može biti korisno za zadatke kao što je pronalaženje sljedećeg najvećeg broja na popisu ili pronalaženje prvog elementa u sortiranom nizu koji je veći od zadanog praga.