Comment utiliser la fonction Upper_bound() en C++

Comment Utiliser La Fonction Upper Bound En C



Une variété de programmes, notamment des jeux, des graphiques, des serveurs Web, etc., peuvent être créés à l'aide du langage de programmation C++. Cependant, nous pouvons parfois avoir besoin d'effectuer certaines opérations sur les données de nos programmes, comme rechercher, trier ou trouver la valeur maximale ou minimale parmi une série d'éléments. L'une des fonctions pouvant être utilisées pour trouver la limite supérieure d'une valeur dans une plage triée d'éléments est upper_bound().

Qu'est-ce que la fonction upper_bound() en C++

La fonction upper_bound() en C++ est une fonction qui prend une plage triée d'éléments et une valeur comme arguments et renvoie un itérateur pointant vers le premier élément de la plage supérieur à la valeur.







Il comporte deux types d’arguments différents :



num upper_bound ( sur une. d'abord , sur une. dernier , valeur )

Les itérateurs qui spécifient la plage d'éléments à examiner sont le premier et le dernier. L'intervalle utilisé contient tous les éléments du premier élément jusqu'à la fin mais n'inclut pas l'élément indiqué par le dernier. La valeur est la valeur à laquelle comparer les éléments.



num upper_bound ( sur une. d'abord , sur une. dernier , valeur, comparer la composition )

Dans ce cas, la fonction binaire comp produit une valeur qui peut être convertie en booléen et accepte deux paramètres du même type comme éléments de la plage. Si une certaine condition impose que le premier argument ne soit pas supérieur au second, la fonction doit renvoyer le résultat vrai et sinon, elle doit renvoyer le résultat faux.





Comment utiliser la fonction upper_bound() en C++

La fonction upper_bound() peut être utilisée pour trouver la limite supérieure d'une valeur dans une plage triée d'éléments dans diverses situations. Par exemple, nous pouvons l'utiliser pour trouver la position d'un élément dans un tableau ou un vecteur trié, ou pour trouver l'élément supérieur suivant dans un ensemble ou une carte. Voici quelques exemples d’utilisation de la fonction upper_bound() en C++ :

Exemple 1 : Utilisation de la fonction upper_bound() pour rechercher la position d'un élément dans un tableau trié

Voici un exemple qui utilise la fonction upper_bound() pour trouver la position d'un élément dans un tableau trié d'entiers et l'afficher à l'écran :



#include

#include

en utilisant espace de noms norme ;

int principal ( )

{

int tableau [ ] = { quinze , 35 , Quatre cinq , 55 , 65 } ;

int un = taille de ( tableau ) / taille de ( tableau [ 0 ] ) ;

cout << 'Le tableau contient : ' ;

pour ( int je = 0 ; je < un ; je ++ )

cout << tableau [ je ] << ' ' ;

cout << ' \n ' ;

int b = Quatre cinq ; // déclare et initialise une valeur

int * p = limite_upérieure ( tableau, tableau + un B ) ;

cout << 'Limite supérieure de' << b << ' est à la position : ' << ( p - tableau ) << ' \n ' ; // affiche la position en utilisant l'arithmétique du pointeur

retour 0 ;

}

Le programme définit d’abord les fichiers d’en-tête nécessaires et le tableau contenant des nombres, puis utilise la fonction sizeof() pour obtenir la taille du tableau. Ensuite, une boucle for est utilisée pour afficher les éléments du tableau puis un entier est déclaré dont la position dans le tableau est déterminée à l'aide du pointeur et il est affiché dans la sortie :

Exemple 2 : Utilisation de la fonction upper_bound() pour rechercher l'élément supérieur suivant dans un ensemble

Voici un exemple de code qui utilise la fonction upper_bound() pour trouver l'élément immédiatement supérieur à une valeur donnée dans un ensemble d'entiers et l'afficher à l'écran :

#include

#include

#include

en utilisant espace de noms norme ;

int principal ( )

{

ensemble < int > sur une = { quinze , 25 , 35 , Quatre cinq , 55 } ; // déclare et initialise un ensemble d'entiers

cout << « Numéros donnés : » ;

pour ( auto un : sur une ) // affiche les éléments de l'ensemble en utilisant une boucle for basée sur une plage

cout << un << ' ' ;

cout << ' \n ' ;

int un = Quatre cinq ; // déclare et initialise une valeur

auto il = limite_upérieure ( sur une. commencer ( ) , sur une. fin ( ) , un ) ; // trouve la limite supérieure de x dans l'ensemble en utilisant upper_bound()

si ( il ! = sur une. fin ( ) ) // vérifie si l'itérateur est valide

cout << 'Le prochain nombre supérieur à' << un << ' est ' << * il << ' \n ' ; // affiche l'élément en utilisant l'opérateur de déréférencement

autre

cout << 'Il n'y a pas de nombre supérieur à' << un << ' \n ' ; // affiche un message si aucun élément de ce type n'est trouvé

retour 0 ;

}

Tout d'abord, le code définit les fichiers d'en-tête nécessaires, puis un vecteur de cinq éléments est défini, puis le vecteur est affiché à l'aide du mot-clé auto car il peut définir automatiquement le type de données des éléments. Ensuite, une variable ayant une valeur de 45 est déclarée qui est ensuite comparée au vecteur défini à l'aide de la fonction upper_bound() et affiche ensuite le résultat de la comparaison :

Conclusion

La fonction upper_bound() est une fonction qui renvoie un itérateur pointant vers le premier élément d'une plage triée supérieure à une valeur donnée. Pour localiser le premier nombre dans un intervalle supérieur ou égal à un nombre spécifié, utilisez la fonction upper_bound() en C++. Cela peut être utile pour des tâches telles que la recherche du nombre le plus élevé suivant dans une liste ou la recherche du premier élément d'un tableau trié supérieur à un seuil donné.