Što je metoda lower_bound()?
Lower_bound() metoda u C++ pronalazi prvo pojavljivanje zadane vrijednosti u sortiranom spremniku. Dio je
Sintaksa
Metoda lower_bound() u C++ ima dvije varijante: zadanu i prilagođenu sintaksu.
Zadana sintaksa
Zadana sintaksa uključuje ForwardIterator koji pokazuje na prvi i zadnji element u rasponu koji se traži, odnosno vrijednost za usporedbu elemenata u rasponu.
ForwardIterator donja_granica ( Prvo Iterator naprijed , ForwardIterator zadnji , konst T i val ) ;
Prilagođena sintaksa
Prilagođena sintaksa dodatno preuzima korisnički definiranu funkciju binarnog predikata koja slijedi strogi slabi redoslijed za poredak elemenata.
ForwardIterator donja_granica ( Prvo Iterator naprijed , ForwardIterator zadnji , konst T i val , Usporedi komp ) ;
Parametri
Lower_bound() metoda u C++-u uzima tri parametra.
Prvi zadnji: Prva dva parametra, 'prvi' i 'zadnji', određuju raspon [prvi, zadnji) unutar kojeg metoda traži donju granicu. Raspon je određen pomoću dva parametra, naime 'prvi' i 'posljednji'. Raspon uključuje sve elemente između 'prvog' i 'zadnjeg' iteratora, ali isključuje element na koji ukazuje 'posljednji' iterator.
val: Treći parametar metode lower_bound() naziva se 'val'. Predstavlja vrijednost donje granice koju treba pronaći unutar navedenog raspona. Kada se pozove metoda lower_bound(), ona traži prvi element unutar navedenog raspona spremnika koji je veći ili jednak zadanoj vrijednosti 'val'.
comp: Metoda lower_bound() također može prihvatiti funkciju binarne usporedbe kao svoj četvrti parametar. Potrebna su dva argumenta: Tip na koji ukazuje Iterator naprijed , a drugi je val . Funkcija zatim vraća Booleovu vrijednost na temelju usporedbe dvaju argumenata. Argument comp ne mijenja nijedan od svojih argumenata i može biti samo pokazivač funkcije ili objekt funkcije.
Povratna vrijednost
Lower_bound() vraća iterator koji pokazuje prema prvom elementu koji je veći ili jednak val . Ako su svi elementi u navedenom rasponu spremnika manji od zadane vrijednosti val , metoda lower_bound() vraća iterator koji pokazuje na posljednji element u rasponu, a ako su svi elementi veći od val , daje iterator koji pokazuje na prvi element u rasponu.
Primjer koda
Ovaj C++ kod pokazuje upotrebu funkcije std::lower_bound() za pronalaženje prvog elementa u sortiranom vektoru koji nije manji od zadane vrijednosti.
#includeint glavni ( )
{
// Ulazni vektor
std :: vektor < dvostruko > vrijednosti { 10 , petnaest , dvadeset , 25 , 30 } ;
// Ispis vektora
std :: cout << 'Vektor sadrži:' ;
za ( nepotpisan int ja = 0 ; ja < vrijednosti. veličina ( ) ; ja ++ )
std :: cout << ' ' << vrijednosti [ ja ] ;
std :: cout << ' \n ' ;
std :: vektor < dvostruko >:: iterator to1 , to2 , to3 ;
// std :: donja_granica
to1 = std :: Donja granica ( vrijednosti. početi ( ) , vrijednosti. kraj ( ) , 13 ) ;
to2 = std :: Donja granica ( vrijednosti. početi ( ) , vrijednosti. kraj ( ) , 23 ) ;
to3 = std :: Donja granica ( vrijednosti. početi ( ) , vrijednosti. kraj ( ) , 33 ) ;
std :: cout
<< ' \n donja granica za element 13 na poziciji: '
<< ( to1 - vrijednosti. početi ( ) ) ;
std :: cout
<< ' \n donja granica za element 23 na poziciji: '
<< ( to2 - vrijednosti. početi ( ) ) ;
std :: cout
<< ' \n donja granica za element 33 na poziciji: '
<< ( to3 - vrijednosti. početi ( ) ) ;
povratak 0 ;
}
Kod počinje definiranjem std::vectora tipa dvostruko imenovanih vrijednosti i njegovim inicijaliziranjem s nekim vrijednostima. Zatim ispisuje elemente vektora pomoću for petlje.
Zatim, kod deklarira tri varijable std::vector
Funkcija std::lower_bound() poziva se s tri različite vrijednosti: 13, 23 i 33. Prilikom svakog poziva, lower_bound() daje iterator koji pokazuje prema prvom elementu u vektoru koji je veći ili jednak navedena vrijednost.
Kod zatim ispisuje položaje tih elemenata u vektoru oduzimanjem iteratora values.begin() od iteratora koji vraća std::lower_bound(), što daje indeks elementa u vektoru.
Izlaz
Zaključak
Lower_bound() metoda u C++ pronalazi prvo pojavljivanje zadane vrijednosti u sortiranom spremniku. To je dio biblioteke