Mikä on alaraja()-menetelmä?
Low_bound()-metodi C++:ssa löytää tietyn arvon ensimmäisen esiintymän lajitetusta säiliöstä. Se on osa C++:n
Syntaksi
Low_bound()-menetelmällä C++:ssa on kaksi muunnelmaa: oletus ja mukautettu syntaksi.
Oletussyntaksi
Oletussyntaksi ottaa käyttöön ForwardIteratorin, joka osoittaa haettavan alueen ensimmäiseen ja viimeiseen elementtiin, ja arvon, joka vertaa alueen elementtejä.
ForwardIterator alaraja ( ForwardIterator ensin , ForwardIterator viimeinen , konst T & val ) ;
Mukautettu syntaksi
Mukautettu syntaksi ottaa lisäksi käyttöön käyttäjän määrittämän binääripredikaattifunktion, joka seuraa tiukkaa heikkoa järjestystä elementtien järjestämiseksi.
ForwardIterator alaraja ( ForwardIterator ensin , ForwardIterator viimeinen , konst T & val , Vertaa komp ) ;
Parametrit
Low_bound()-metodi C++:ssa ottaa kolme parametria.
Ensimmäinen viimeinen: Kaksi ensimmäistä parametria, 'first' ja 'last', määrittävät alueen [first, last), jonka sisällä menetelmä etsii alarajaa. Alue määritellään kahdella parametrilla, nimittäin 'first' ja 'last'. Alue sisältää kaikki elementit 'ensimmäisen' ja 'viimeisen' iteraattorin välillä, mutta ei sisällä elementtiä, johon 'viimeinen' iteraattori osoittaa.
val: Low_bound()-metodin kolmatta parametria kutsutaan nimellä 'val'. Se edustaa alarajan arvoa, joka on löydettävä määritetyltä alueelta. Kun Low_bound()-metodia kutsutaan, se etsii ensimmäistä elementtiä määritetyltä säilön alueelta, joka on suurempi tai yhtä suuri kuin annettu arvo 'val'.
comp: Low_bound()-menetelmä voi myös hyväksyä binäärivertailufunktion neljänneksi parametriksi. Siihen tarvitaan kaksi argumenttia: tyypin osoittama tyyppi ForwardIterator , ja toinen on val . Funktio palauttaa sitten Boolen arvon, joka perustuu näiden kahden argumentin vertailuun. Comp-argumentti ei muuta mitään argumenteistaan, ja se voi olla vain funktioosoitin tai funktioobjekti.
Palautusarvo
Low_bound() palauttaa iteraattorin, joka osoittaa kohti ensimmäistä elementtiä, joka on suurempi tai yhtä suuri kuin val . Jos kaikki säilön määritetyn alueen elementit ovat pienempiä kuin annettu arvo val , Low_bound()-metodi palauttaa iteraattorin, joka osoittaa alueen viimeiseen elementtiin, ja jos kaikki elementit ovat suurempia kuin val , se antaa iteraattorin, joka osoittaa alueen ensimmäiseen elementtiin.
Esimerkkikoodi
Tämä C++-koodi esittelee std::lower_bound()-funktion käyttöä lajitellun vektorin ensimmäisen elementin löytämiseksi, joka ei ole pienempi kuin annettu arvo.
#includeint pää ( )
{
// Syöttövektori
std :: vektori < kaksinkertainen > arvot { 10 , viisitoista , kaksikymmentä , 25 , 30 } ;
// Tulosta vektori
std :: cout << 'Vektori sisältää:' ;
varten ( allekirjoittamaton int i = 0 ; i < arvot. koko ( ) ; i ++ )
std :: cout << ' ' << arvot [ i ] ;
std :: cout << ' \n ' ;
std :: vektori < kaksinkertainen >:: iteraattori it1 , se2 , se3 ;
// std :: alaraja
it1 = std :: alaraja ( arvot. alkaa ( ) , arvot. loppu ( ) , 13 ) ;
se2 = std :: alaraja ( arvot. alkaa ( ) , arvot. loppu ( ) , 23 ) ;
se3 = std :: alaraja ( arvot. alkaa ( ) , arvot. loppu ( ) , 33 ) ;
std :: cout
<< ' \n alaraja elementille 13 sijainnissa: '
<< ( it1 - arvot. alkaa ( ) ) ;
std :: cout
<< ' \n alaraja elementille 23 sijainnissa: '
<< ( se2 - arvot. alkaa ( ) ) ;
std :: cout
<< ' \n alaraja elementille 33 sijainnissa: '
<< ( se3 - arvot. alkaa ( ) ) ;
palata 0 ;
}
Koodi alkaa määrittelemällä std::vektorin, jonka tyyppi on kaksoisnimetyt arvot, ja alustamalla sen joillain arvoilla. Sitten se tulostaa vektorin elementit for-silmukalla.
Seuraavaksi koodi ilmoittaa kolme std::vector
Funktiota std::lower_bound() kutsutaan kolmella eri arvolla: 13, 23 ja 33. Jokaisessa kutsussa low_bound() antaa iteraattorin, joka osoittaa kohti vektorin ensimmäistä elementtiä, joka on suurempi tai yhtä suuri kuin määritetty arvo.
Koodi tulostaa sitten näiden elementtien paikat vektorissa vähentämällä arvot.begin()-iteraattorin iteraattorista, jonka palauttaa std::lower_bound(), joka antaa vektorin elementin indeksin.
Lähtö
Johtopäätös
Low_bound()-metodi C++:ssa löytää tietyn arvon ensimmäisen esiintymän lajitetusta säiliöstä. Se on osa C++:n