Što je metoda lower_Bound() u C++

Sto Je Metoda Lower Bound U C



Programski jezik C++ nudi širok raspon funkcija i metoda koje se intenzivno koriste. Metoda lower_bound() jedna je takva funkcija koja se koristi za pronalaženje prvog pojavljivanja dane vrijednosti u sortiranom spremniku. Ovaj članak pokriva sintaksu, parametre, povratne vrijednosti i primjer koda za metodu lower_bound() u C++.

Što je metoda lower_bound()?

Lower_bound() metoda u C++ pronalazi prvo pojavljivanje zadane vrijednosti u sortiranom spremniku. Dio je biblioteke u C++ i koristi se za izvođenje binarnih pretraživanja na nizovima, vektorima i drugim sortiranim spremnicima. Metoda lower_bound() vraća iterator koji pokazuje na prvi element u određenom rasponu spremnika, koji nije manji od navedene vrijednosti.

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.

#include

int 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::iterator pod nazivom it1, it2 i it3. Ove varijable će se koristiti za pohranjivanje rezultata pozivanja std::lower_bound() na vektor vrijednosti s različitim argumentima.

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 u C++ i može se koristiti za izvođenje binarnih pretraživanja na nizovima, vektorima i drugim sortiranim spremnicima. Metoda daje iterator koji pokazuje prema prvom elementu u rasponu koji nije manji od zadane vrijednosti. Pročitajte više o metodi lower_bound() u ovom članku.