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
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.
#includeentier 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
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