Com utilitzar la funció Upper_bound() en C++

Com Utilitzar La Funcio Upper Bound En C



Es poden fer una varietat de programes, inclosos jocs, gràfics, servidors web i molt més, utilitzant el llenguatge de programació C++. Tanmateix, de vegades és possible que hàgim de realitzar algunes operacions sobre les dades dels nostres programes, com ara cercar, ordenar o trobar el valor màxim o mínim entre un rang d'elements. Una de les funcions que es poden utilitzar per trobar el límit superior d'un valor en un rang ordenat d'elements és upper_bound().

Què és la funció upper_bound() en C++

La funció upper_bound() en C++ és una funció que pren un rang ordenat d'elements i un valor com a arguments i retorna un iterador que apunta al primer element de l'interval que és més gran que el valor.







Té dos tipus d'arguments diferents:



num límit_superior ( en una. primer , en un. darrer , valor )

Els iteradors que especifiquen el rang d'elements a examinar són els primers i els últims. L'interval utilitzat conté tots els elements des del primer element fins al final, però no inclou l'element indicat per darrer. El valor és el valor amb què comparar els elements.



num límit_superior ( en una. primer , en un. darrer ,  valor, comparar comp )

En aquest cas, la funció binària comp produeix un valor que es pot convertir en bool i accepta dos paràmetres del mateix tipus que els elements de l'interval. Si una determinada condició dicta que el primer argument no és superior al segon, la funció ha de retornar el resultat vertader i, si no, hauria de retornar fals.





Com utilitzar la funció upper_bound() en C++

La funció upper_bound() es pot utilitzar per trobar el límit superior d'un valor en un rang ordenat d'elements en diverses situacions. Per exemple, el podem utilitzar per trobar la posició d'un element en una matriu o vector ordenat, o per trobar el següent element més gran en un conjunt o mapa. Aquests són alguns exemples de com utilitzar la funció upper_bound() en C++:

Exemple 1: ús de la funció upper_bound() per trobar la posició d'un element en una matriu ordenada

Aquí hi ha un exemple, que utilitza la funció upper_bound() per trobar la posició d'un element en una matriu ordenada d'enters i mostrar-la a la pantalla:



#inclou

#inclou

utilitzant espai de noms std ;

int principal ( )

{

int matriu [ ] = { 15 , 35 , 45 , 55 , 65 } ;

int a = mida de ( matriu ) / mida de ( matriu [ 0 ] ) ;

cout << 'La matriu conté:' ;

per ( int i = 0 ; i < a ; i ++ )

cout << matriu [ i ] << ' ' ;

cout << ' \n ' ;

int b = 45 ; // declarar i inicialitzar un valor

int * pàg = límit_superior ( matriu, matriu + a, b ) ;

cout << 'Límit superior de' << b << ' està a la posició: ' << ( pàg - matriu ) << ' \n ' ; // mostra la posició mitjançant l'aritmètica del punter

tornar 0 ;

}

Primer, el programa defineix els fitxers de capçalera necessaris i la matriu que conté números i després utilitza la funció sizeof() per obtenir la mida de la matriu. A continuació, s'utilitza un bucle for per mostrar els elements de la matriu i després es declara un nombre enter la posició del qual a la matriu es determina mitjançant el punter i es mostra a la sortida:

Exemple 2: ús de la funció upper_bound() per trobar el següent element superior en un conjunt

Aquí hi ha un exemple de codi que utilitza la funció upper_bound() per trobar el següent element més gran que un valor donat en un conjunt d'enters i mostrar-lo a la pantalla:

#inclou

#inclou

#inclou

utilitzant espai de noms std ;

int principal ( )

{

conjunt < int > en una = { 15 , 25 , 35 , 45 , 55 } ; // declarar i inicialitzar un conjunt d'enters

cout << 'Nombres donats:' ;

per ( automàtic a : en una ) // mostra els elements del conjunt utilitzant el bucle for basat en intervals

cout << a << ' ' ;

cout << ' \n ' ;

int a = 45 ; // declarar i inicialitzar un valor

automàtic això = límit_superior ( en una. començar ( ) , en un. final ( ) , a ) ; // Trobeu el límit superior de x al conjunt utilitzant upper_bound()

si ( això ! = en una. final ( ) ) // comproveu si l'iterador és vàlid

cout << 'El següent nombre més gran que' << a << ' és ' << * això << ' \n ' ; // mostra l'element utilitzant l'operador de desreferència

altra cosa

cout << 'No hi ha un nombre superior a' << a << ' \n ' ; // mostra un missatge si no es troba aquest element

tornar 0 ;

}

Primer el codi defineix els fitxers de capçalera necessaris i després es defineix un vector de cinc elements, a continuació es mostra el vector mitjançant la paraula clau auto ja que pot establir automàticament el tipus de dades dels elements. A continuació, es declara una variable amb un valor de 45 que després es compara amb el vector definit mitjançant la funció upper_bound() i després mostra el resultat de la comparació:

Conclusió

La funció upper_bound() és una funció que retorna un iterador que apunta al primer element d'un rang ordenat que és més gran que un valor donat. Per localitzar el primer nombre en un interval que sigui superior o igual a un nombre especificat, utilitzeu la funció upper_bound() en C++. Això pot ser útil per a tasques com trobar el següent nombre més alt en una llista o trobar el primer element en una matriu ordenada que sigui superior a un llindar determinat.