Hva er nedre_grense()-metoden?
Lower_bound()-metoden i C++ finner den første forekomsten av en gitt verdi i en sortert beholder. Det er en del av
Syntaks
Lower_bound()-metoden i C++ har to varianter: en standard og en tilpasset syntaks.
Standard syntaks
Standardsyntaksen tar inn en ForwardIterator som peker til henholdsvis det første og forbi de siste elementene i området det skal søkes i, og en verdi for å sammenligne elementene i området.
ForwardIterator nedre_grense ( ForwardIterator først , ForwardIterator sist , konst T & val ) ;
Egendefinert syntaks
Den tilpassede syntaksen tar i tillegg inn en brukerdefinert binær predikatfunksjon som følger streng svak rekkefølge for å bestille elementene.
ForwardIterator nedre_grense ( ForwardIterator først , ForwardIterator sist , konst T & val , Sammenlign komp ) ;
Parametere
Lower_bound()-metoden i C++ tar tre parametere.
Først sist: De to første parameterne, 'første' og 'siste', bestemmer området [første, siste) som metoden søker etter den nedre grensen innenfor. Området er spesifisert av to parametere, nemlig 'første' og 'siste'. Området inkluderer alle elementene mellom den «første» og «siste» iteratoren, men ekskluderer elementet som den «siste» iteratoren peker på.
verdi: Den tredje parameteren til lower_bound()-metoden refereres til som 'val'. Den representerer verdien av den nedre grensen som må finnes innenfor det angitte området. Når metoden lower_bound() kalles, søker den etter det første elementet innenfor det spesifiserte området til en beholder som er større enn eller lik den gitte verdien 'val'.
komp: Lower_bound()-metoden kan også akseptere en binær sammenligningsfunksjon som sin fjerde parameter. Det krever to argumenter: Typen pekt av ForwardIterator , og den andre er val . Funksjonen returnerer deretter en boolsk verdi basert på en sammenligning mellom de to argumentene. Comp-argumentet endrer ikke noen av argumentene, og det kan bare være en funksjonspeker eller et funksjonsobjekt.
Returverdi
Lower_bound() returnerer en iterator som peker mot det første elementet som er større enn eller lik val . Hvis alle elementene i det angitte området til en beholder er mindre enn den gitte verdien val , returnerer metoden lower_bound() en iterator som peker til det siste elementet i området, og hvis alle elementene er større enn val , gir det en iterator som peker til det første elementet i området.
Eksempelkode
Denne C++-koden demonstrerer bruken av std::lower_bound()-funksjonen for å finne det første elementet i en sortert vektor som ikke er mindre enn en gitt verdi.
#includeint hoved- ( )
{
// Inndatavektor
std :: vektor < dobbelt > verdier { 10 , femten , tjue , 25 , 30 } ;
// Skriv ut vektor
std :: cout << 'Vektor inneholder:' ;
til ( usignert int Jeg = 0 ; Jeg < verdier. størrelse ( ) ; Jeg ++ )
std :: cout << ' ' << verdier [ Jeg ] ;
std :: cout << ' \n ' ;
std :: vektor < dobbelt >:: iterator it1 , it2 , it3 ;
// std :: nedre_grense
it1 = std :: nedre_grense ( verdier. begynne ( ) , verdier. slutt ( ) , 1. 3 ) ;
it2 = std :: nedre_grense ( verdier. begynne ( ) , verdier. slutt ( ) , 23 ) ;
it3 = std :: nedre_grense ( verdier. begynne ( ) , verdier. slutt ( ) , 33 ) ;
std :: cout
<< ' \n nedre_grense for element 13 ved posisjon: '
<< ( it1 - verdier. begynne ( ) ) ;
std :: cout
<< ' \n nedre_grense for element 23 ved posisjon: '
<< ( it2 - verdier. begynne ( ) ) ;
std :: cout
<< ' \n nedre_grense for element 33 ved posisjon: '
<< ( it3 - verdier. begynne ( ) ) ;
komme tilbake 0 ;
}
Koden starter med å definere en std::vektor av typen dobbeltnavnverdier og initialisere den med noen verdier. Den skriver deretter ut elementene i vektoren ved å bruke en for-løkke.
Deretter erklærer koden tre std::vector
Std::lower_bound()-funksjonen kalles med tre forskjellige verdier: 13, 23 og 33. På hvert kall gir nedre_bound() en iterator som peker mot det første elementet i vektoren som er større enn eller lik spesifisert verdi.
Koden skriver deretter ut posisjonene til disse elementene i vektoren ved å trekke iteratoren values.begin() fra iteratoren returnert av std::lower_bound(), som gir indeksen til elementet i vektoren.
Produksjon
Konklusjon
Lower_bound()-metoden i C++ finner den første forekomsten av en gitt verdi i en sortert beholder. Det er en del av