Quin és el mètode low_Bound() en C++

Quin Es El Metode Low Bound En C



El llenguatge de programació C++ ofereix una àmplia gamma de funcions i mètodes que s'utilitzen àmpliament. El mètode low_bound() és una d'aquestes funcions que s'utilitza per trobar la primera ocurrència d'un valor donat en un contenidor ordenat. Aquest article cobreix la sintaxi, els paràmetres, els valors de retorn i un exemple de codi per al mètode lower_bound() en C++.

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 en C++ i s'utilitza per fer cerques binàries en matrius, vectors i altres contenidors ordenats. El mètode lower_bound() retorna un iterador que apunta al primer element d'un interval especificat d'un contenidor, que no és inferior al valor proporcionat.

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.

#inclou

int 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::iterator anomenades it1, it2 i it3. Aquestes variables s'utilitzaran per emmagatzemar els resultats de la crida a std::lower_bound() al vector de valors amb diferents arguments.

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 en C++ i es pot utilitzar per fer cerques binàries en matrius, vectors i altres contenidors ordenats. El mètode proporciona un iterador que apunta cap al primer element d'un rang que no és inferior al valor donat. Llegiu més sobre el mètode lower_bound() en aquest article.