Mikä on Low_Bound()-menetelmä C++:ssa

Mika On Low Bound Menetelma C Ssa



C++-ohjelmointikieli tarjoaa laajan valikoiman toimintoja ja menetelmiä, joita käytetään laajasti. Low_bound()-menetelmä on yksi tällainen funktio, jota käytetään tietyn arvon ensimmäisen esiintymisen etsimiseen lajitetusta säiliöstä. Tämä artikkeli kattaa syntaksin, parametrit, palautusarvot ja esimerkkikoodin C++:n alaraja()-metodille.

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 -kirjastoa ja sitä käytetään binäärihakujen suorittamiseen taulukoissa, vektoreissa ja muissa lajitetuissa säilöissä. Low_bound()-menetelmä palauttaa iteraattorin, joka osoittaa ensimmäiseen elementtiin määritetyllä säilön alueella, joka ei ole pienempi kuin annettu arvo.

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.

#include

int 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::iterator-muuttujaa nimeltä it1, it2 ja it3. Näitä muuttujia käytetään tallentamaan std::lower_bound()-kutsun tulokset arvovektoriin eri argumenteilla.

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 -kirjastoa, ja sitä voidaan käyttää binäärihakujen suorittamiseen taulukoissa, vektoreissa ja muissa lajitetuissa säilöissä. Menetelmä antaa iteraattorin, joka osoittaa kohti ensimmäistä elementtiä alueella, joka ei ole pienempi kuin annettu arvo. Lue lisää bottom_bound()-menetelmästä tässä artikkelissa.