Qu'est-ce que la méthode lower_Bound() en C++

Qu Est Ce Que La Methode Lower Bound En C



Le langage de programmation C++ offre un large éventail de fonctions et de méthodes largement utilisées. La méthode lower_bound() est une de ces fonctions qui est utilisée pour trouver la première occurrence d'une valeur donnée dans un conteneur trié. Cet article couvre la syntaxe, les paramètres, les valeurs de retour et un exemple de code pour la méthode lower_bound() en C++.

Qu'est-ce que la méthode lower_bound() ?

La méthode lower_bound() en C++ trouve la première occurrence d'une valeur donnée dans un conteneur trié. Il fait partie de la bibliothèque en C++ et est utilisé pour effectuer des recherches binaires sur des tableaux, des vecteurs et d'autres conteneurs triés. La méthode lower_bound() renvoie un itérateur qui pointe vers le premier élément d'une plage spécifiée d'un conteneur, qui n'est pas inférieur à la valeur fournie.

Syntaxe







La méthode lower_bound() en C++ a deux variantes : une syntaxe par défaut et une syntaxe personnalisée.



Syntaxe par défaut

La syntaxe par défaut prend un ForwardIterator pointant vers le premier et après le dernier élément de la plage à rechercher, respectivement, et une valeur pour comparer les éléments de la plage.



ForwardIterator limite inférieure ( ForwardIterator en premier , ForwardIterator dernier , constante J & val ) ;

Syntaxe personnalisée

La syntaxe personnalisée prend en outre une fonction de prédicat binaire définie par l'utilisateur qui suit un ordre faible strict pour ordonner les éléments.





ForwardIterator limite inférieure ( ForwardIterator en premier , ForwardIterator dernier , constante J & val , Comparer les comp ) ;

Paramètres

La méthode lower_bound() en C++ prend trois paramètres.

Premier Dernier: Les deux premiers paramètres, 'first' et 'last', déterminent la plage [first, last) dans laquelle la méthode recherche la limite inférieure. La plage est spécifiée par deux paramètres, à savoir 'premier' et 'dernier'. La plage inclut tous les éléments entre les 'premier' et 'dernier' itérateurs mais exclut l'élément pointé par le 'dernier' itérateur.



valeur : Le troisième paramètre de la méthode lower_bound() est appelé 'val'. Il représente la valeur de la borne inférieure qui doit être trouvée dans la plage spécifiée. Lorsque la méthode lower_bound() est appelée, elle recherche le premier élément dans la plage spécifiée d'un conteneur qui est supérieur ou égal à la valeur donnée 'val'.

composition : La méthode lower_bound() peut également accepter une fonction de comparaison binaire comme quatrième paramètre. Il prend deux arguments : Le type pointé par le ForwardIterator , et la seconde est val . La fonction renvoie ensuite une valeur booléenne basée sur une comparaison entre les deux arguments. L'argument comp ne change aucun de ses arguments et il ne peut s'agir que d'un pointeur de fonction ou d'un objet fonction.

Valeur de retour

La valeur lower_bound() renvoie un itérateur qui pointe vers le premier élément supérieur ou égal à val . Si tous les éléments de la plage spécifiée d'un conteneur sont inférieurs à la valeur donnée val , la méthode lower_bound() renvoie un itérateur pointant vers le dernier élément de la plage, et si tous les éléments sont supérieurs à val , il donne un itérateur qui pointe vers le premier élément de la plage.

Exemple de code

Ce code C++ illustre l'utilisation de la fonction std::lower_bound() pour rechercher le premier élément dans un vecteur trié qui n'est pas inférieur à une valeur donnée.

#include

entier principal ( )

{

// Vecteur d'entrée

std :: vecteur < double > valeurs { dix , quinze , vingt , 25 , 30 } ;

// Imprimer le vecteur

std :: écoute << 'Le vecteur contient :' ;

pour ( non signé entier je = 0 ; je < valeurs. taille ( ) ; je ++ )

std :: écoute << ' ' << valeurs [ je ] ;

std :: écoute << ' \n ' ;

std :: vecteur < double > :: itérateur ça1 , ça2 , ça3 ;

// std :: limite inférieure

ça1 = std :: borne inférieure ( valeurs. commencer ( ) , valeurs. fin ( ) , 13 ) ;

ça2 = std :: borne inférieure ( valeurs. commencer ( ) , valeurs. fin ( ) , 23 ) ;

ça3 = std :: borne inférieure ( valeurs. commencer ( ) , valeurs. fin ( ) , 33 ) ;

std :: écoute

<< ' \n lower_bound pour l'élément 13 à la position : '

<< ( ça1 - valeurs. commencer ( ) ) ;

std :: écoute

<< ' \n lower_bound pour l'élément 23 à la position : '

<< ( ça2 - valeurs. commencer ( ) ) ;

std :: écoute

<< ' \n lower_bound pour l'élément 33 à la position : '

<< ( ça3 - valeurs. commencer ( ) ) ;

retour 0 ;

}

Le code commence par définir un std :: vector de type valeurs à double nom et l'initialise avec certaines valeurs. Il imprime ensuite les éléments du vecteur à l'aide d'une boucle for.

Ensuite, le code déclare trois variables std::vector::iterator nommées it1, it2 et it3. Ces variables seront utilisées pour stocker les résultats de l'appel de std::lower_bound() sur le vecteur de valeurs avec différents arguments.

La fonction std::lower_bound() est appelée avec trois valeurs différentes : 13, 23 et 33. À chaque appel, lower_bound() donne un itérateur qui pointe vers le premier élément du vecteur qui est supérieur ou égal à la valeur spécifiée.

Le code imprime ensuite les positions de ces éléments dans le vecteur en soustrayant l'itérateur values.begin() de l'itérateur renvoyé par std::lower_bound(), qui donne l'index de l'élément dans le vecteur.

Sortir

Conclusion

La méthode lower_bound() en C++ trouve la première occurrence d'une valeur donnée dans un conteneur trié. Il fait partie de la bibliothèque en C++ et peut être utilisé pour effectuer des recherches binaires sur des tableaux, des vecteurs et d'autres conteneurs triés. La méthode donne un itérateur qui pointe vers le premier élément d'une plage qui n'est pas inférieure à la valeur donnée. En savoir plus sur la méthode lower_bound() dans cet article.