Hur man använder Upper_bound()-funktionen i C++

Hur Man Anvander Upper Bound Funktionen I C



En mängd olika program, inklusive spel, grafik, webbservrar och mer, kan skapas med programmeringsspråket C++. Men ibland kan vi behöva utföra vissa operationer på data i våra program, som att söka, sortera eller hitta det högsta eller lägsta värdet bland en rad element. En av funktionerna som kan användas för att hitta den övre gränsen för ett värde i ett sorterat intervall av element är upper_bound().

Vad är upper_bound() Funktion i C++

Upper_bound()-funktionen i C++ är en funktion som tar ett sorterat intervall av element och ett värde som argument och returnerar en iterator som pekar på det första elementet i intervallet som är större än värdet.







Den har två olika typer av argument:



num upper_bound ( på ett. först , på ett. sista , värde )

Iteratorer som anger intervallet av element som ska undersökas är först och sist. Intervallet som används innehåller alla element från det första elementet upp till slutet men inkluderar inte elementet som indikeras av sist. Värde är värdet att jämföra elementen med.



num upper_bound ( på ett. först , på ett. sista ,  värde, jämför jämför )

I det här fallet producerar den binära funktionen comp ett värde som kan konverteras till en bool och accepterar två parametrar av samma typ som intervallets objekt. Om ett visst villkor kräver att det första argumentet inte är högre än det andra, måste funktionen returnera sant resultat och om inte, ska den returnera falskt.





Hur man använder upper_bound()-funktionen i C++

Upper_bound()-funktionen kan användas för att hitta den övre gränsen för ett värde i ett sorterat intervall av element i olika situationer. Till exempel kan vi använda den för att hitta positionen för ett element i en sorterad array eller vektor, eller för att hitta nästa större element i en uppsättning eller karta. Här är några exempel på hur man använder upper_bound()-funktionen i C++:

Exempel 1: Använda upper_bound()-funktionen för att hitta positionen för ett element i en sorterad matris

Här är ett exempel som använder upper_bound()-funktionen för att hitta positionen för ett element i en sorterad matris av heltal och visa den på skärmen:



#include

#include

använder sig av namnutrymme std ;

int huvud ( )

{

int array [ ] = { femton , 35 , Fyra fem , 55 , 65 } ;

int a = storlek av ( array ) / storlek av ( array [ 0 ] ) ;

cout << 'Array innehåller: ' ;

för ( int i = 0 ; i < a ; i ++ )

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

cout << ' \n ' ;

int b = Fyra fem ; // deklarera och initiera ett värde

int * sid = övre gräns ( array, array + a, b ) ;

cout << 'Övre gräns för' << b << ' är på position: ' << ( sid - array ) << ' \n ' ; // visa positionen med hjälp av pekaritmetik

lämna tillbaka 0 ;

}

Först definierar programmet de nödvändiga huvudfilerna och arrayen som innehåller siffror och använder sedan funktionen sizeof() för att få storleken på arrayen. Därefter används en for-loop för att visa elementen i arrayen och sedan deklareras ett heltal vars position i arrayen bestäms med hjälp av pekaren och det visas i utgången:

Exempel 2: Använda upper_bound()-funktionen för att hitta nästa större element i en uppsättning

Här är en exempelkod som använder upper_bound()-funktionen för att hitta nästa större element än ett givet värde i en uppsättning heltal och visa det på skärmen:

#include

#include

#inkludera

använder sig av namnutrymme std ;

int huvud ( )

{

uppsättning < int > på ett = { femton , 25 , 35 , Fyra fem , 55 } ; // deklarera och initiera en uppsättning heltal

cout << 'Givna siffror:' ;

för ( bil a : på ett ) // visa uppsättningselementen med intervallbaserat för loop

cout << a << ' ' ;

cout << ' \n ' ;

int a = Fyra fem ; // deklarera och initiera ett värde

bil Det = övre gräns ( på ett. Börja ( ) , på ett. slutet ( ) , a ) ; // hitta den övre gränsen för x i mängden med upper_bound()

om ( Det ! = på ett. slutet ( ) ) // kontrollera om iteratorn är giltig

cout << 'Nästa högre siffra än' << a << ' är ' << * Det << ' \n ' ; // visa elementet med hjälp av dereference operator

annan

cout << 'Det finns inget högre nummer än' << a << ' \n ' ; // visa ett meddelande om inget sådant element hittas

lämna tillbaka 0 ;

}

Först definierar koden de nödvändiga rubrikfilerna och sedan definieras en vektor med fem element, därefter visas vektorn med nyckelordet auto eftersom den automatiskt kan ställa in datatypen för elementen. Därefter deklareras en variabel med värdet 45 som sedan jämförs med vektorn definierad med upper_bound()-funktionen och efteråt visar den jämförelseresultatet:

Slutsats

Upper_bound()-funktionen är en funktion som returnerar en iterator som pekar på det första elementet i ett sorterat område som är större än ett givet värde. För att hitta det första talet i ett intervall som är större än eller lika med ett angivet tal, använd upper_bound()-funktionen i C++. Detta kan vara användbart för uppgifter som att hitta det näst högsta numret i en lista eller att hitta det första elementet i en sorterad array som är större än en given tröskel.