Sådan bruges Upper_bound()-funktionen i C++

Sadan Bruges Upper Bound Funktionen I C



En række programmer, herunder spil, grafik, webservere og mere, kan laves ved hjælp af programmeringssproget C++. Nogle gange kan vi dog være nødt til at udføre nogle handlinger på dataene i vores programmer, såsom at søge, sortere eller finde maksimum- eller minimumværdien blandt en række elementer. En af de funktioner, der kan bruges til at finde den øvre grænse for en værdi i et sorteret område af elementer, er upper_bound().

Hvad er upper_bound() Funktion i C++

Upper_bound()-funktionen i C++ er en funktion, der tager et sorteret område af elementer og en værdi som argumenter og returnerer en iterator, der peger på det første element i området, der er større end værdien.







Det har to forskellige typer argumenter:



antal øvre_grænse ( på en. først , på en. sidst , værdi )

Iteratorer, der specificerer rækken af ​​elementer, der skal undersøges, er først og sidst. Det anvendte interval indeholder alle elementer fra det første element til slutningen, men inkluderer ikke det element, der er angivet med sidst. Værdi er den værdi, som elementerne skal sammenlignes med.



antal øvre_grænse ( på en. først , på en. sidst , værdi, sammenlign )

I dette tilfælde producerer den binære funktion comp en værdi, der kan konverteres til en bool og accepterer to parametre af samme type som områdets elementer. Hvis en bestemt betingelse dikterer, at det første argument ikke er højere end det andet, skal funktionen returnere sandt resultat, og hvis ikke, skal den returnere falsk.





Sådan bruges funktionen upper_bound() i C++

Funktionen upper_bound() kan bruges til at finde den øvre grænse for en værdi i et sorteret område af elementer i forskellige situationer. For eksempel kan vi bruge det til at finde positionen af ​​et element i en sorteret matrix eller vektor, eller til at finde det næste større element i et sæt eller kort. Her er nogle eksempler på, hvordan man bruger upper_bound()-funktionen i C++:

Eksempel 1: Brug af funktionen upper_bound() til at finde positionen af ​​et element i en sorteret matrix

Her er et eksempel, der bruger funktionen upper_bound() til at finde positionen af ​​et element i et sorteret array af heltal og vise det på skærmen:



#include

#include

ved brug af navneområde std ;

int vigtigste ( )

{

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

int -en = størrelse af ( array ) / størrelse af ( array [ 0 ] ) ;

cout << 'Array indeholder: ' ;

til ( int jeg = 0 ; jeg < -en ; jeg ++ )

cout << array [ jeg ] << ' ' ;

cout << ' \n ' ;

int b = Fire, fem ; // erklære og initialisere en værdi

int * s = øvre grænse ( matrix, matrix + a, b ) ;

cout << 'Øvre grænse af' << b << ' er i position: ' << ( s - array ) << ' \n ' ; // vis positionen ved hjælp af pointer-aritmetik

Vend tilbage 0 ;

}

Først definerer programmet de nødvendige header-filer og array indeholdende tal og bruger derefter funktionen sizeof() til at få størrelsen på arrayet. Dernæst bruges en for-løkke til at vise elementerne i arrayet, og derefter erklæres et heltal, hvis position i arrayet bestemmes ved hjælp af markøren, og det vises i outputtet:

Eksempel 2: Brug af funktionen upper_bound() til at finde det næste større element i et sæt

Her er et eksempel på en kode, der bruger funktionen upper_bound() til at finde det næste større element end en given værdi i et sæt heltal og vise det på skærmen:

#include

#include

#inkluder

ved brug af navneområde std ;

int vigtigste ( )

{

sæt < int > på en = { femten , 25 , 35 , Fire, fem , 55 } ; // erklærer og initialiser et sæt heltal

cout << 'Givne tal:' ;

til ( auto -en : på en ) // vis de indstillede elementer ved hjælp af range-based for loop

cout << -en << ' ' ;

cout << ' \n ' ;

int -en = Fire, fem ; // erklære og initialisere en værdi

auto det = øvre grænse ( på en. begynde ( ) , på en. ende ( ) , a ) ; // find den øvre grænse for x i sættet ved hjælp af upper_bound()

hvis ( det ! = på en. ende ( ) ) // tjek om iteratoren er gyldig

cout << 'Det næste højere tal end' << -en << 'er' << * det << ' \n ' ; // vis elementet ved hjælp af dereference-operator

andet

cout << 'Der er intet højere tal end' << -en << ' \n ' ; // vis en besked, hvis der ikke findes et sådant element

Vend tilbage 0 ;

}

Først definerer koden de nødvendige header-filer og derefter defineres en vektor med fem elementer, derefter vises vektoren ved hjælp af auto nøgleordet, da den automatisk kan indstille datatypen for elementerne. Dernæst erklæres en variabel med en værdi på 45, som derefter sammenlignes med vektoren defineret ved hjælp af upper_bound()-funktionen, og bagefter viser den sammenligningsresultatet:

Konklusion

Upper_bound()-funktionen er en funktion, der returnerer en iterator, der peger på det første element i et sorteret område, der er større end en given værdi. For at finde det første tal i et interval, der er større end eller lig med et angivet tal, skal du bruge funktionen upper_bound() i C++. Dette kan være nyttigt til opgaver som at finde det næsthøjeste tal på en liste eller finde det første element i en sorteret matrix, der er større end en given tærskel.