Mis on meetod alumine_piir() keeles C++

Mis On Meetod Alumine Piir Keeles C



Programmeerimiskeel C++ pakub laia valikut funktsioone ja meetodeid, mida kasutatakse laialdaselt. Meetod alumine_piir() on üks selline funktsioon, mida kasutatakse sorditud konteineris antud väärtuse esmakordse esinemise leidmiseks. See artikkel hõlmab süntaksit, parameetreid, tagastusväärtusi ja C++ meetodi low_bound() näidiskoodi.

Mis on alumine_piir() meetod?

C++ meetod alumine_piir() leiab sorditud konteineris antud väärtuse esmakordse esinemise. See on osa C++ teegist ja seda kasutatakse binaarsete otsingute tegemiseks massiivides, vektorites ja muudes sorteeritud konteinerites. Meetod alumine_piir() tagastab iteraatori, mis osutab esimesele elemendile konteineri määratud vahemikus, mis ei ole väiksem kui etteantud väärtus.

Süntaks







C++ meetodil Low_bound() on kaks varianti: vaike- ja kohandatud süntaks.



Vaikimisi süntaks

Vaikimisi süntaks kasutab ForwardIteratorit, mis osutab vastavalt otsitava vahemiku esimesele ja viimasele elemendile, ning väärtuse vahemiku elementide võrdlemiseks.



ForwardIterator alumine_piir ( Esiteks ForwardIterator , ForwardIterator viimane , konst T & val ) ;

Kohandatud süntaks

Kohandatud süntaks kasutab lisaks kasutaja määratud binaarpredikaadi funktsiooni, mis järgib elementide järjestamiseks ranget nõrka järjestust.





ForwardIterator alumine_piir ( Esiteks ForwardIterator , ForwardIterator viimane , konst T & val , Võrdle komp ) ;

Parameetrid

Low_bound() meetodil C++ on kolm parameetrit.

Esimene Viimane: Esimesed kaks parameetrit, “esimene” ja “viimane”, määravad vahemiku [first, last), mille piires meetod otsib alumist piiri. Vahemik määratakse kahe parameetriga, nimelt 'esimene' ja 'viimane'. Vahemik hõlmab kõiki elemente 'esimese' ja 'viimase' iteraatori vahel, kuid ei sisalda elementi, millele viitas 'viimase' iteraatoriga.



val: Low_bound() meetodi kolmandat parameetrit nimetatakse 'val'. See tähistab alampiiri väärtust, mis tuleb leida määratud vahemikust. Kui kutsutakse meetod low_bound(), otsib see konteineri määratud vahemikus esimest elementi, mis on suurem või võrdne antud väärtusega 'val'.

komp: Alumine_piir() võib oma neljanda parameetrina aktsepteerida ka binaarset võrdlusfunktsiooni. Selleks on vaja kahte argumenti: tüüp, millele osutab ForwardIterator , ja teine ​​on val . Seejärel tagastab funktsioon kahe argumendi võrdluse põhjal Boole'i ​​väärtuse. Comp-argument ei muuda ühtegi selle argumenti ja see võib olla ainult funktsiooni osuti või funktsiooniobjekt.

Tagastusväärtus

Alumine_piir() tagastab iteraatori, mis osutab esimesele elemendile, mis on suurem või sellega võrdne val . Kui kõik konteineri määratud vahemikus olevad elemendid on antud väärtusest väiksemad val , tagastab meetod low_bound() iteraatori, mis osutab vahemiku viimasele elemendile ja kui kõik elemendid on suuremad kui val , annab see iteraatori, mis osutab vahemiku esimesele elemendile.

Näidiskood

See C++ kood demonstreerib funktsiooni std::lower_bound() kasutamist sorteeritud vektori esimese elemendi leidmiseks, mis ei ole väiksem kui etteantud väärtus.

#include

int peamine ( )

{

// Sisendvektor

std :: vektor < kahekordne > väärtused { 10 , viisteist , kakskümmend , 25 , 30 } ;

// Trüki vektor

std :: cout << 'Vektor sisaldab:' ;

jaoks ( allkirjastamata int i = 0 ; i < väärtused. suurus ( ) ; i ++ )

std :: cout << ' ' << väärtused [ i ] ;

std :: cout << ' \n ' ;

std :: vektor < kahekordne >:: iteraator see1 , see2 , see3 ;

// std :: alumine_piir

see1 = std :: alampiir ( väärtused. alustada ( ) , väärtused. lõpp ( ) , 13 ) ;

see2 = std :: alampiir ( väärtused. alustada ( ) , väärtused. lõpp ( ) , 23 ) ;

see3 = std :: alampiir ( väärtused. alustada ( ) , väärtused. lõpp ( ) , 33 ) ;

std :: cout

<< ' \n alumine_piir elemendi 13 jaoks asukohas: '

<< ( see1 - väärtused. alustada ( ) ) ;

std :: cout

<< ' \n alumine_piir elemendi 23 jaoks asukohas: '

<< ( see2 - väärtused. alustada ( ) ) ;

std :: cout

<< ' \n alumine_piir elemendi 33 jaoks asukohas: '

<< ( see3 - väärtused. alustada ( ) ) ;

tagasi 0 ;

}

Kood algab kahenimeliste väärtuste tüüpi std::vektori määratlemisega ja selle initsialiseerimisega mõne väärtusega. Seejärel prindib see vektori elemendid for-tsükli abil.

Järgmisena deklareerib kood kolm std::vector::iterator muutujat nimedega it1, it2 ja it3. Neid muutujaid kasutatakse std::lower_bound() kutsumise tulemuste salvestamiseks erinevate argumentidega väärtuste vektorisse.

Funktsiooni std::lower_bound() kutsutakse välja kolme erineva väärtusega: 13, 23 ja 33. Iga kõne korral annab alam_piir() iteraatori, mis osutab vektori esimesele elemendile, mis on suurem või võrdne määratud väärtus.

Seejärel prindib kood välja nende elementide asukohad vektoris, lahutades väärtused.begin() iteraatori iteraatorist, mille tagastab std::lower_bound(), mis annab elemendi indeksi vektoris.

Väljund

Järeldus

C++ meetod alumine_piir() leiab sorditud konteineris antud väärtuse esmakordse esinemise. See on osa C++ teegist ja seda saab kasutada binaarsete otsingute tegemiseks massiivides, vektorites ja muudes sorteeritud konteinerites. Meetod annab iteraatori, mis osutab esimesele elemendile vahemikus, mis ei ole väiksem kui etteantud väärtus. Lisateavet meetodi Low_bound() kohta leiate sellest artiklist.