Ano ang lower_Bound() Method sa C++

Ano Ang Lower Bound Method Sa C



Nag-aalok ang C++ programming language ng malawak na hanay ng mga function at pamamaraan na malawakang ginagamit. Ang lower_bound() na pamamaraan ay isang ganoong function na ginagamit upang mahanap ang unang paglitaw ng isang ibinigay na halaga sa isang pinagsunod-sunod na lalagyan. Sinasaklaw ng artikulong ito ang syntax, mga parameter, mga return value, at isang halimbawang code para sa lower_bound() na pamamaraan sa C++.

Ano ang lower_bound() Method?

Hinahanap ng lower_bound() na pamamaraan sa C++ ang unang paglitaw ng isang ibinigay na halaga sa isang pinagsunod-sunod na lalagyan. Ito ay bahagi ng library sa C++ at ginagamit upang magsagawa ng mga binary na paghahanap sa mga array, vector, at iba pang pinagsunod-sunod na mga container. Ang lower_bound() na pamamaraan ay nagbabalik ng isang iterator na tumuturo sa unang elemento sa isang tinukoy na hanay ng isang lalagyan, na hindi bababa sa ibinigay na halaga.

Syntax







Ang lower_bound() na paraan sa C++ ay may dalawang variation: isang default at isang custom na syntax.



Default na Syntax

Ang default na syntax ay tumatagal ng isang ForwardIterator na tumuturo sa una at lampas sa mga huling elemento sa hanay na hahanapin, ayon sa pagkakabanggit, at isang halaga upang ihambing ang mga elemento sa hanay.



ForwardIterator lower_bound ( ForwardIterator muna , ForwardIterator huling , const T at val ) ;

Custom na Syntax

Ang custom na syntax ay tumatagal din ng binary predicate function na tinukoy ng gumagamit na sumusunod sa mahigpit na mahinang pag-order upang mag-order ng mga elemento.





ForwardIterator lower_bound ( ForwardIterator muna , ForwardIterator huling , const T at val , Ikumpara ang comp ) ;

Mga Parameter

Ang lower_bound() na pamamaraan sa C++ ay tumatagal ng tatlong parameter.

Una huli: Tinutukoy ng unang dalawang parameter, 'una' at 'huling', ang hanay [una, huli) kung saan hinahanap ng pamamaraan ang lower bound. Ang saklaw ay tinukoy ng dalawang parameter, katulad ng 'una' at 'huling'. Kasama sa hanay ang lahat ng elemento sa pagitan ng 'una' at 'huling' iterator ngunit hindi kasama ang elementong itinuro ng 'huling' iterator.



val: Ang ikatlong parameter ng lower_bound() na pamamaraan ay tinutukoy bilang 'val'. Kinakatawan nito ang halaga ng lower bound na kailangang matagpuan sa loob ng tinukoy na hanay. Kapag tinawag ang lower_bound() na paraan, hahanapin nito ang unang elemento sa loob ng tinukoy na hanay ng isang lalagyan na mas malaki kaysa o katumbas ng ibinigay na halaga na 'val'.

comp: Ang lower_bound() na paraan ay maaari ding tumanggap ng binary comparison function bilang pang-apat na parameter nito. Kailangan ng dalawang argumento: Ang uri na itinuturo ng ForwardIterator , at ang pangalawa ay val . Ang function ay nagbabalik ng isang Boolean na halaga batay sa isang paghahambing sa pagitan ng dalawang argumento. Hindi binabago ng comp argument ang alinman sa mga argumento nito at maaari lamang itong maging function pointer o function object.

Ibalik ang Halaga

Ang lower_bound() ay nagbabalik ng isang iterator na tumuturo patungo sa unang elemento na mas malaki sa o katumbas ng val . Kung ang lahat ng elemento sa tinukoy na hanay ng isang lalagyan ay mas maliit kaysa sa ibinigay na halaga val , ang lower_bound() na pamamaraan ay nagbabalik ng isang iterator na tumuturo sa huling elemento sa hanay, at kung ang lahat ng mga elemento ay mas malaki kaysa val , nagbibigay ito ng iterator na tumuturo sa unang elemento sa hanay.

Halimbawang Code

Ang C++ code na ito ay nagpapakita ng paggamit ng std::lower_bound() function upang mahanap ang unang elemento sa isang pinagsunod-sunod na vector na hindi bababa sa isang ibinigay na halaga.

#include

int pangunahing ( )

{

// Input na vector

std :: vector < doble > mga halaga { 10 , labinlima , dalawampu , 25 , 30 } ;

// Print vector

std :: cout << 'Ang vector ay naglalaman ng:' ;

para sa ( hindi pinirmahan int i = 0 ; i < mga halaga. laki ( ) ; i ++ )

std :: cout << '' << mga halaga [ i ] ;

std :: cout << ' \n ' ;

std :: vector < doble >:: umuulit ito1 , ito2 , ito3 ;

// std :: lower_bound

ito1 = std :: lower_bound ( mga halaga. magsimula ( ) , mga halaga. wakas ( ) , 13 ) ;

ito2 = std :: lower_bound ( mga halaga. magsimula ( ) , mga halaga. wakas ( ) , 23 ) ;

ito3 = std :: lower_bound ( mga halaga. magsimula ( ) , mga halaga. wakas ( ) , 33 ) ;

std :: cout

<< ' \n lower_bound para sa elemento 13 sa posisyon: '

<< ( ito1 - mga halaga. magsimula ( ) ) ;

std :: cout

<< ' \n lower_bound para sa elemento 23 sa posisyon: '

<< ( ito2 - mga halaga. magsimula ( ) ) ;

std :: cout

<< ' \n lower_bound para sa elemento 33 sa posisyon: '

<< ( ito3 - mga halaga. magsimula ( ) ) ;

bumalik 0 ;

}

Nagsisimula ang code sa pamamagitan ng pagtukoy sa isang std::vector ng uri ng mga double-named na halaga at pagsisimula nito sa ilang mga halaga. Pagkatapos ay ipi-print nito ang mga elemento ng vector gamit ang for loop.

Susunod, idineklara ng code ang tatlong std::vector::iterator variable na pinangalanang it1, it2, at it3. Gagamitin ang mga variable na ito upang iimbak ang mga resulta ng pagtawag sa std::lower_bound() sa vectors ng mga value na may iba't ibang argumento.

Ang std::lower_bound() function ay tinatawag na may tatlong magkakaibang value: 13, 23, at 33. Sa bawat tawag, ang lower_bound() ay nagbibigay ng iterator na tumuturo patungo sa unang elemento sa vector na mas malaki kaysa o katumbas ng tinukoy na halaga.

Pagkatapos ay ipi-print ng code ang mga posisyon ng mga elementong ito sa vector sa pamamagitan ng pagbabawas ng values.begin() iterator mula sa iterator na ibinalik ng std::lower_bound(), na nagbibigay ng index ng elemento sa vector.

Output

Konklusyon

Hinahanap ng lower_bound() na pamamaraan sa C++ ang unang paglitaw ng isang ibinigay na halaga sa isang pinagsunod-sunod na lalagyan. Ito ay bahagi ng library sa C++ at maaaring magamit upang magsagawa ng mga binary na paghahanap sa mga array, vector, at iba pang pinagsunod-sunod na mga container. Ang pamamaraan ay nagbibigay ng isang iterator na tumuturo patungo sa unang elemento sa isang hanay na hindi bababa sa ibinigay na halaga. Magbasa nang higit pa sa lower_bound() na pamamaraan sa artikulong ito.