Quin és el mètode low_bound()?
El mètode lower_bound() en C++ troba la primera ocurrència d'un valor donat en un contenidor ordenat. Forma part de la biblioteca
Sintaxi
El mètode lower_bound() en C++ té dues variacions: una sintaxi predeterminada i una personalitzada.
Sintaxi per defecte
La sintaxi predeterminada incorpora un ForwardIterator que apunta al primer i al darrer element de l'interval que s'ha de cercar, respectivament, i un valor per comparar els elements de l'interval.
ForwardIterator límit_inferior ( ForwardIterator primer , ForwardIterator últim , const T & val ) ;
Sintaxi personalitzada
La sintaxi personalitzada també incorpora una funció de predicat binari definida per l'usuari que segueix un ordre estricte i feble per ordenar els elements.
ForwardIterator límit_inferior ( ForwardIterator primer , ForwardIterator últim , const T & val , Compareu comp ) ;
Paràmetres
El mètode low_bound() en C++ pren tres paràmetres.
Primer últim: Els dos primers paràmetres, 'primer' i 'últim', determinen l'interval [primer, darrer) dins del qual el mètode cerca el límit inferior. L'interval s'especifica mitjançant dos paràmetres, a saber, 'primer' i 'últim'. L'interval inclou tots els elements entre el 'primer' i el 'últim' iterador, però exclou l'element assenyalat pel 'últim' iterador.
val: El tercer paràmetre del mètode low_bound() s'anomena 'val'. Representa el valor del límit inferior que cal trobar dins de l'interval especificat. Quan es crida al mètode low_bound(), cerca el primer element dins de l'interval especificat d'un contenidor que és superior o igual al valor donat 'val'.
comp: El mètode lower_bound() també pot acceptar una funció de comparació binària com a quart paràmetre. Es necessita dos arguments: El tipus assenyalat per ForwardIterator , i el segon és val . Aleshores, la funció retorna un valor booleà basat en una comparació entre els dos arguments. L'argument comp no canvia cap dels seus arguments i només pot ser un punter de funció o un objecte de funció.
Valor de retorn
Lower_bound() retorna un iterador que apunta cap al primer element que és més gran o igual que el val . Si tots els elements de l'interval especificat d'un contenidor són més petits que el valor donat val , el mètode low_bound() retorna un iterador que apunta a l'últim element de l'interval, i si tots els elements són més grans que val , dóna un iterador que apunta al primer element de l'interval.
Exemple de codi
Aquest codi C++ demostra l'ús de la funció std::lower_bound() per trobar el primer element en un vector ordenat que no sigui inferior a un valor donat.
#inclouint principal ( )
{
// Vector d'entrada
std :: vector < doble > valors { 10 , 15 , 20 , 25 , 30 } ;
// Imprimeix vector
std :: cout << 'El vector conté:' ;
per ( sense signar int i = 0 ; i < valors. mida ( ) ; i ++ )
std :: cout << ' ' << valors [ i ] ;
std :: cout << ' \n ' ;
std :: vector < doble >:: iterador ell 1 , it2 , it3 ;
// std :: límit_inferior
ell 1 = std :: cota inferior ( valors. començar ( ) , valors. final ( ) , 13 ) ;
it2 = std :: cota inferior ( valors. començar ( ) , valors. final ( ) , 23 ) ;
it3 = std :: cota inferior ( valors. començar ( ) , valors. final ( ) , 33 ) ;
std :: cout
<< ' \n límit inferior per a l'element 13 a la posició: '
<< ( ell 1 - valors. començar ( ) ) ;
std :: cout
<< ' \n límit inferior per a l'element 23 a la posició: '
<< ( it2 - valors. començar ( ) ) ;
std :: cout
<< ' \n límit inferior per a l'element 33 a la posició: '
<< ( it3 - valors. començar ( ) ) ;
tornar 0 ;
}
El codi comença definint un std::vector de tipus valors amb nom doble i inicialitzant-lo amb alguns valors. A continuació, imprimeix els elements del vector mitjançant un bucle for.
A continuació, el codi declara tres variables std::vector
La funció std::lower_bound() es crida amb tres valors diferents: 13, 23 i 33. En cada trucada, la funció lower_bound() dóna un iterador que apunta cap al primer element del vector que és més gran o igual que el valor especificat.
Aleshores, el codi imprimeix les posicions d'aquests elements al vector restant l'iterador values.begin() de l'iterador retornat per std::lower_bound(), que dóna l'índex de l'element al vector.
Sortida
Conclusió
El mètode lower_bound() en C++ troba la primera ocurrència d'un valor donat en un contenidor ordenat. Forma part de la biblioteca