Hvordan bruke Upper_bound()-funksjonen i C++

Hvordan Bruke Upper Bound Funksjonen I C



En rekke programmer, inkludert spill, grafikk, webservere og mer, kan lages ved å bruke programmeringsspråket C++. Noen ganger kan det imidlertid hende vi må utføre noen operasjoner på dataene i programmene våre, for eksempel å søke, sortere eller finne maksimums- eller minimumsverdien blant en rekke elementer. En av funksjonene som kan brukes til å finne den øvre grensen til en verdi i et sortert utvalg av elementer er upper_bound().

Hva er funksjonen upper_bound() i C++

Upper_bound()-funksjonen i C++ er en funksjon som tar et sortert utvalg av elementer og en verdi som argumenter og returnerer en iterator som peker til det første elementet i området som er større enn verdien.







Den har to forskjellige typer argumenter:



num øvre_grense ( på en. først , på en. siste , verdi )

Iteratorer som spesifiserer utvalget av elementer som skal undersøkes, er først og sist. Intervallet som brukes inneholder alle elementer fra det første elementet til slutten, men inkluderer ikke elementet angitt med sist. Verdi er verdien å sammenligne elementene med.



num øvre_grense ( på en. først , på en. siste ,  verdi, sammenlign )

I dette tilfellet produserer den binære funksjonen comp en verdi som kan konverteres til en bool og aksepterer to parametere av samme type som områdets elementer. Hvis en bestemt betingelse tilsier at det første argumentet ikke er høyere enn det andre, må funksjonen returnere sant resultat, og hvis ikke, skal den returnere usann.





Hvordan bruke funksjonen upper_bound() i C++

Upper_bound()-funksjonen kan brukes til å finne den øvre grensen til en verdi i et sortert utvalg av elementer i ulike situasjoner. For eksempel kan vi bruke den til å finne posisjonen til et element i en sortert matrise eller vektor, eller til å finne det neste større elementet i et sett eller kart. Her er noen eksempler på hvordan du bruker funksjonen upper_bound() i C++:

Eksempel 1: Bruk av funksjonen upper_bound() for å finne posisjonen til et element i en sortert matrise

Her er et eksempel som bruker funksjonen upper_bound() for å finne posisjonen til et element i en sortert rekke med heltall og vise den på skjermen:



#include

#include

ved hjelp av navneområde std ;

int hoved- ( )

{

int array [ ] = { femten , 35 , Fire fem , 55 , 65 } ;

int en = størrelsen av ( array ) / størrelsen av ( array [ 0 ] ) ;

cout << 'Array inneholder: ' ;

til ( int Jeg = 0 ; Jeg < en ; Jeg ++ )

cout << array [ Jeg ] << ' ' ;

cout << ' \n ' ;

int b = Fire fem ; // erklære og initialisere en verdi

int * s = øvre grense ( array, array + a, b ) ;

cout << 'Øvre grense av' << b << ' er i posisjon: ' << ( s - array ) << ' \n ' ; // vis posisjonen ved hjelp av pekeraritmetikk

komme tilbake 0 ;

}

Først definerer programmet de nødvendige header-filene og matrisen som inneholder tall, og bruker deretter sizeof()-funksjonen for å få størrelsen på matrisen. Deretter brukes en for-løkke for å vise elementene i matrisen, og deretter erklæres et heltall hvis posisjon i matrisen bestemmes ved hjelp av pekeren, og det vises i utdata:

Eksempel 2: Bruk av funksjonen upper_bound() for å finne det neste større elementet i et sett

Her er en eksempelkode som bruker funksjonen upper_bound() for å finne det neste større elementet enn en gitt verdi i et sett med heltall og vise det på skjermen:

#include

#include

#inkluder

ved hjelp av navneområde std ;

int hoved- ( )

{

sett < int > på en = { femten , 25 , 35 , Fire fem , 55 } ; // erklære og initialisere et sett med heltall

cout << 'Gitte tall: ' ;

til ( auto en : på en ) // vis de angitte elementene ved å bruke rekkevidde-basert for loop

cout << en << ' ' ;

cout << ' \n ' ;

int en = Fire fem ; // erklære og initialisere en verdi

auto den = øvre grense ( på en. begynne ( ) , på en. slutt ( ) , a ) ; // finn den øvre grensen til x i settet ved å bruke upper_bound()

hvis ( den ! = på en. slutt ( ) ) // sjekk om iteratoren er gyldig

cout << 'Det neste høyere tallet enn' << en << ' er ' << * den << ' \n ' ; // vis elementet ved hjelp av dereference operator

ellers

cout << 'Det er ikke noe høyere tall enn' << en << ' \n ' ; // vis en melding hvis ikke noe slikt element er funnet

komme tilbake 0 ;

}

Først definerer koden de nødvendige overskriftsfilene og deretter defineres en vektor med fem elementer, deretter vises vektoren ved hjelp av auto-nøkkelordet, da den automatisk kan angi datatypen til elementene. Deretter deklareres en variabel som har en verdi på 45, som deretter sammenlignes med vektoren som er definert ved hjelp av funksjonen upper_bound() og etterpå viser den sammenligningsresultatet:

Konklusjon

Upper_bound()-funksjonen er en funksjon som returnerer en iterator som peker til det første elementet i et sortert område som er større enn en gitt verdi. For å finne det første tallet i et intervall som er større enn eller lik et spesifisert tall, bruk opper_bound()-funksjonen i C++. Dette kan være nyttig for oppgaver som å finne det nest høyeste tallet i en liste eller å finne det første elementet i en sortert matrise som er større enn en gitt terskel.