Paano Gamitin ang Upper_bound() Function sa C++

Paano Gamitin Ang Upper Bound Function Sa C



Ang iba't ibang mga programa, kabilang ang mga laro, graphics, web server, at higit pa, ay maaaring gawin gamit ang C++ programming language. Gayunpaman, kung minsan ay maaaring kailanganin naming magsagawa ng ilang mga operasyon sa data sa aming mga programa, tulad ng paghahanap, pag-uuri, o paghahanap ng maximum o minimum na halaga sa hanay ng mga elemento. Ang isa sa mga function na maaaring magamit upang mahanap ang upper bound ng isang value sa isang pinagsunod-sunod na hanay ng mga elemento ay upper_bound().

Ano ang upper_bound() Function sa C++

Ang upper_bound() function sa C++ ay isang function na kumukuha ng pinagsunod-sunod na hanay ng mga elemento at isang value bilang mga argumento at nagbabalik ng iterator na tumuturo sa unang elemento sa range na mas malaki kaysa sa value.







Mayroon itong dalawang magkakaibang uri ng mga argumento:



num upper_bound ( sa isa. una , sa isa. huli , halaga )

Ang mga iterator na tumutukoy sa hanay ng mga elementong susuriin ay una at huli. Ang interval na ginamit ay naglalaman ng lahat ng elemento mula sa unang elemento hanggang sa dulo ngunit hindi kasama ang elementong ipinahiwatig ng huli. Ang halaga ay ang halaga kung saan ihahambing ang mga elemento.



num upper_bound ( sa isa. una , sa isa. huli ,  halaga, ihambing ang comp )

Sa kasong ito, ang binary function comp ay gumagawa ng isang halaga na maaaring i-convert sa isang bool at tumatanggap ng dalawang parameter ng parehong uri ng mga item ng hanay. Kung ang isang tiyak na kundisyon ay nagdidikta na ang unang argumento ay hindi mas mataas kaysa sa pangalawa, ang function ay dapat magbalik ng tunay na resulta at kung hindi, ito ay dapat magbalik ng mali.





Paano Gamitin ang upper_bound() Function sa C++

Ang upper_bound() function ay maaaring gamitin upang mahanap ang upper bound ng isang value sa isang pinagsunod-sunod na hanay ng mga elemento sa iba't ibang sitwasyon. Halimbawa, magagamit natin ito upang mahanap ang posisyon ng isang elemento sa isang pinagsunod-sunod na array o vector, o upang mahanap ang susunod na mas malaking elemento sa isang set o mapa. Narito ang ilang mga halimbawa kung paano gamitin ang upper_bound() function sa C++:

Halimbawa 1: Paggamit ng upper_bound() Function para Hanapin ang Posisyon ng isang Element sa isang Sorted Array

Narito ang isang halimbawa, na gumagamit ng upper_bound() function upang mahanap ang posisyon ng isang elemento sa isang pinagsunod-sunod na hanay ng mga integer at ipakita ito sa screen:



#include

#include

gamit namespace std ;

int pangunahing ( )

{

int array [ ] = { labinlima , 35 , Apat. Lima , 55 , 65 } ;

int a = sukat ng ( array ) / sukat ng ( array [ 0 ] ) ;

cout << 'Ang array ay naglalaman ng:' ;

para sa ( int i = 0 ; i < a ; i ++ )

cout << array [ i ] << ' ' ;

cout << ' \n ' ;

int b = Apat. Lima ; // idedeklara at simulan ang isang halaga

int * p = upper_bound ( hanay, hanay + a, b ) ;

cout << 'Upper bound of' << b << ' ay nasa posisyon: ' << ( p - array ) << ' \n ' ; // ipakita ang posisyon gamit ang pointer arithmetic

bumalik 0 ;

}

Una, tinukoy ng programa ang mga kinakailangang file ng header at array na naglalaman ng mga numero at pagkatapos ay ginagamit ang function na sizeof() upang makuha ang laki ng array. Susunod na para sa loop ay ginagamit upang ipakita ang mga elemento ng array at pagkatapos ay idineklara ang isang integer na ang posisyon sa array ay tinutukoy gamit ang pointer at ito ay ipinapakita sa output:

Halimbawa 2: Paggamit ng upper_bound() Function para Hanapin ang Next Greater Element sa isang Set

Narito ang isang halimbawang code na gumagamit ng upper_bound() function upang mahanap ang susunod na mas malaking elemento kaysa sa isang ibinigay na halaga sa isang hanay ng mga integer at ipakita ito sa screen:

#include

#include

#include

gamit namespace std ;

int pangunahing ( )

{

itakda < int > sa isa = { labinlima , 25 , 35 , Apat. Lima , 55 } ; // nagdedeklara at nagpasimula ng isang set ng integer

cout << 'Binigyan ng mga Numero:' ;

para sa ( sasakyan a : sa isa ) // ipakita ang mga set na elemento gamit ang range-based para sa loop

cout << a << '' ;

cout << ' \n ' ;

int a = Apat. Lima ; // idedeklara at simulan ang isang halaga

sasakyan ito = upper_bound ( sa isa. magsimula ( ) , sa isa. wakas ( ) , a ) ; // hanapin ang upper bound ng x sa set gamit ang upper_bound()

kung ( ito ! = sa isa. wakas ( ) ) // suriin kung wasto ang iterator

cout << 'Ang Susunod na Mas Mataas na Bilang Kaysa' << a << 'ay' << * ito << ' \n ' ; // ipakita ang elemento gamit ang dereference operator

iba pa

cout << 'Walang mas mataas na bilang kaysa sa ' << a << ' \n ' ; // magpakita ng mensahe kung walang nakitang ganoong elemento

bumalik 0 ;

}

Una, tinukoy ng code ang mga kinakailangang file ng header at pagkatapos ay tinukoy ang isang vector ng limang elemento, pagkatapos ay ipapakita ang vector gamit ang auto keyword dahil maaari nitong awtomatikong itakda ang uri ng data ng mga elemento. Susunod, ang isang variable na may halaga na 45 ay ipinahayag na pagkatapos ay inihambing sa vector na tinukoy gamit ang upper_bound() function at pagkatapos ay ipinapakita nito ang resulta ng paghahambing:

Konklusyon

Ang upper_bound() function ay isang function na nagbabalik ng iterator na tumuturo sa unang elemento sa isang pinagsunod-sunod na hanay na mas malaki kaysa sa isang ibinigay na halaga. Upang mahanap ang unang numero sa isang interval na mas malaki kaysa o katumbas ng isang tinukoy na numero, gamitin ang upper_bound() function sa C++. Maaari itong maging kapaki-pakinabang para sa mga gawain tulad ng paghahanap ng susunod na pinakamataas na numero sa isang listahan o paghahanap ng unang elemento sa isang pinagsunod-sunod na array na mas malaki kaysa sa ibinigay na threshold.