Kas yra apatinės_ribos() metodas?
Apatinės_ribos() metodas C++ aptinka pirmą duotosios reikšmės atvejį surūšiuotame konteineryje. Tai yra C++ bibliotekos
Sintaksė
Low_bound() metodas C++ turi du variantus: numatytąją ir pasirinktinę sintaksę.
Numatytoji sintaksė
Numatytoji sintaksė naudoja ForwardIterator, nukreipiantį atitinkamai į pirmąjį ir po paskutinius elementus diapazone, kurio reikia ieškoti, ir reikšmę, kad būtų galima palyginti diapazono elementus.
„ForwardIterator“ apatinė riba ( Pirmiausia „ForwardIterator“. , ForwardIterator paskutinis , konst T & val ) ;
Pasirinktinė sintaksė
Pasirinktinėje sintaksėje papildomai naudojama vartotojo apibrėžta dvejetainio predikato funkcija, kuri griežtai silpnai nustato elementų tvarką.
„ForwardIterator“ apatinė riba ( Pirmiausia „ForwardIterator“. , ForwardIterator paskutinis , konst T & val , Palyginkite komp ) ;
Parametrai
Low_bound() metodas C++ naudoja tris parametrus.
Pirmas Paskutinis: Pirmieji du parametrai „pirmas“ ir „paskutinis“ nustato diapazoną [pirmas, paskutinis), kuriame metodas ieško apatinės ribos. Diapazonas nurodomas dviem parametrais, būtent „pirmasis“ ir „paskutinis“. Diapazonas apima visus elementus tarp „pirmojo“ ir „paskutinio“ iteratoriaus, bet neįtraukia elemento, į kurį nurodė „paskutinis“ iteratorius.
val: Trečiasis apatinės_ribos() metodo parametras vadinamas „val“. Tai reiškia apatinės ribos vertę, kurią reikia rasti nurodytame diapazone. Kai iškviečiamas apatinės_ribos() metodas, jis ieško pirmojo elemento nurodytame konteinerio diapazone, kuris yra didesnis arba lygus nurodytai reikšmei „val“.
kompas: Low_bound() metodas taip pat gali priimti dvejetainę palyginimo funkciją kaip ketvirtąjį parametrą. Reikia dviejų argumentų: tipas, nurodytas ForwardIterator , o antrasis yra val . Tada funkcija grąžina Būlio reikšmę, pagrįstą dviejų argumentų palyginimu. Argumentas comp nekeičia jokių argumentų ir gali būti tik funkcijos rodyklė arba funkcijos objektas.
Grąžinimo vertė
Low_bound() grąžina iteratorių, nukreipiantį į pirmąjį elementą, kuris yra didesnis arba lygus val . Jei visi nurodyto konteinerio diapazono elementai yra mažesni už nurodytą reikšmę val , metodas bottom_bound() grąžina iteratorių, nukreipiantį į paskutinį diapazono elementą, ir jei visi elementai yra didesni nei val , tai suteikia iteratorių, kuris nurodo pirmąjį diapazono elementą.
Kodo pavyzdys
Šis C++ kodas demonstruoja funkcijos std::lower_bound() naudojimą, norint rasti pirmąjį elementą surūšiuotame vektoriuje, kuris yra ne mažesnis už nurodytą reikšmę.
#includetarpt pagrindinis ( )
{
// Įvesties vektorius
std :: vektorius < dvigubai > vertybes { 10 , penkiolika , dvidešimt , 25 , 30 } ;
// Spausdinti vektorių
std :: cout << 'Vektoriuje yra:' ;
dėl ( nepasirašytas tarpt i = 0 ; i < vertybes. dydis ( ) ; i ++ )
std :: cout << ' ' << vertybes [ i ] ;
std :: cout << “ \n “ ;
std :: vektorius < dvigubai >:: iteratorius it1 , it2 , it3 ;
// std :: apatinė riba
it1 = std :: apatinė riba ( vertybes. pradėti ( ) , vertybes. galas ( ) , 13 ) ;
it2 = std :: apatinė riba ( vertybes. pradėti ( ) , vertybes. galas ( ) , 23 ) ;
it3 = std :: apatinė riba ( vertybes. pradėti ( ) , vertybes. galas ( ) , 33 ) ;
std :: cout
<< “ \n 13 elemento apatinė riba padėtyje: '
<< ( it1 - vertybes. pradėti ( ) ) ;
std :: cout
<< “ \n 23 elemento apatinė riba padėtyje: '
<< ( it2 - vertybes. pradėti ( ) ) ;
std :: cout
<< “ \n 33 elemento apatinė riba pozicijoje: '
<< ( it3 - vertybes. pradėti ( ) ) ;
grąžinti 0 ;
}
Kodas pradedamas apibrėžiant std::vektorių, kurio tipas yra dvigubai pavadintos reikšmės, ir inicijuojant jį kai kuriomis reikšmėmis. Tada jis atspausdina vektoriaus elementus naudodamas for kilpą.
Tada kodas deklaruoja tris std::vector
Funkcija std::lower_bound() iškviečiama su trimis skirtingomis reikšmėmis: 13, 23 ir 33. Kiekvieno iškvietimo metu Lower_bound() pateikia iteratorių, nukreipiantį į pirmąjį vektoriaus elementą, kuris yra didesnis arba lygus nurodytą vertę.
Tada kodas atspausdina šių elementų pozicijas vektoriuje, atimdamas reikšmes.begin() iteratorius iš iteratoriaus, kurį grąžino std::lower_bound(), kuris suteikia elemento indeksą vektoryje.
Išvestis
Išvada
Apatinės_ribos() metodas C++ aptinka pirmąjį nurodytos reikšmės atvejį surūšiuotame konteineryje. Tai yra C++ bibliotekos