Mi az alsó_határ() metódus a C++ nyelven

Mi Az Also Hatar Metodus A C Nyelven



A C++ programozási nyelv a funkciók és módszerek széles skáláját kínálja, amelyeket széles körben használnak. Az alsó_határ() metódus az egyik ilyen függvény, amelyet arra használnak, hogy megkeressük egy adott érték első előfordulását egy rendezett tárolóban. Ez a cikk a szintaxist, a paramétereket, a visszatérési értékeket és a C++ alsó_határ() metódusának példakódját tárgyalja.

Mi az alsó_határ() metódus?

Az alsó_határ() metódus a C++ nyelvben megkeresi egy adott érték első előfordulását egy rendezett tárolóban. Ez a C++ könyvtárának része, és bináris keresések végrehajtására szolgál tömbökön, vektorokon és más rendezett tárolókban. Az alsó_határ() metódus egy iterátort ad vissza, amely a tároló meghatározott tartományában az első elemre mutat, amely nem kisebb, mint a megadott érték.

Szintaxis







A C++ alsó_határ() metódusának két változata van: egy alapértelmezett és egy egyéni szintaxis.



Alapértelmezett szintaxis

Az alapértelmezett szintaxis egy ForwardIterator-t vesz fel, amely a keresendő tartomány első és utolsó elemére mutat, és egy értéket a tartomány elemeinek összehasonlításához.



ForwardIterator alsó_korlát ( Először a ForwardIterator , ForwardIterator utolsó , const T & val ) ;

Egyéni szintaxis

Az egyéni szintaxis emellett egy felhasználó által definiált bináris predikátum függvényt vesz fel, amely szigorú gyenge sorrendet követ az elemek rendezéséhez.





ForwardIterator alsó_korlát ( Először a ForwardIterator , ForwardIterator utolsó , const T & val , Hasonlítsa össze a komp ) ;

Paraméterek

Az alsó_határ() metódus a C++-ban három paramétert vesz igénybe.

Első Utolsó: Az első két paraméter, az „első” és az „utolsó”, határozza meg azt a tartományt [first, last), amelyen belül a metódus az alsó határt keresi. A tartományt két paraméter határozza meg, nevezetesen az „első” és az „utolsó”. A tartomány tartalmazza az „első” és az „utolsó” iterátor közötti összes elemet, de nem tartalmazza azt az elemet, amelyre az „utolsó” iterátor mutat.



val: Az alsó_határ() metódus harmadik paraméterére „val”-ként hivatkozunk. Az alsó korlát értékét jelenti, amelyet a megadott tartományon belül meg kell találni. Az alsó_határ() metódus meghívásakor az első elemet keresi a tároló megadott tartományán belül, amely nagyobb vagy egyenlő, mint a megadott „val” érték.

comp: Az alsó_határ() metódus egy bináris összehasonlító függvényt is elfogadhat negyedik paramétereként. Két argumentumra van szükség: A típus által mutatott típus ForwardIterator , a második pedig az val . A függvény ezután egy logikai értéket ad vissza a két argumentum összehasonlítása alapján. A comp argumentum nem változtatja meg egyik argumentumát sem, és csak függvénymutató vagy függvényobjektum lehet.

Visszatérési érték

Az alsó_határ() egy iterátort ad vissza, amely az első elem felé mutat, amely nagyobb vagy egyenlő, mint a val . Ha egy tároló megadott tartományában minden elem kisebb, mint a megadott érték val , az alsó_határ() metódus egy iterátort ad vissza, amely a tartomány utolsó elemére mutat, és ha minden elem nagyobb, mint val , egy iterátort ad, amely a tartomány első elemére mutat.

Példakód

Ez a C++ kód az std::lower_bound() függvény használatát mutatja be egy rendezett vektor első elemének megtalálásához, amely nem kisebb, mint egy adott érték.

#include

int fő- ( )

{

// Bemeneti vektor

std :: vektor < kettős > értékeket { 10 , tizenöt , húsz , 25 , 30 } ;

// Vektor nyomtatása

std :: cout << 'A vektor a következőket tartalmazza:' ;

számára ( aláírás nélküli int én = 0 ; én < értékeket. méret ( ) ; én ++ )

std :: cout << ' ' << értékeket [ én ] ;

std :: cout << ' \n ' ;

std :: vektor < kettős >:: iterátor it1 , it2 , it3 ;

// std :: alsó_korlát

it1 = std :: alsó határ ( értékeket. kezdődik ( ) , értékeket. vége ( ) , 13 ) ;

it2 = std :: alsó határ ( értékeket. kezdődik ( ) , értékeket. vége ( ) , 23 ) ;

it3 = std :: alsó határ ( értékeket. kezdődik ( ) , értékeket. vége ( ) , 33 ) ;

std :: cout

<< ' \n alsó_korlát a 13. elemhez a pozícióban: '

<< ( it1 - értékeket. kezdődik ( ) ) ;

std :: cout

<< ' \n alsó_korlát a 23. elemhez a pozícióban: '

<< ( it2 - értékeket. kezdődik ( ) ) ;

std :: cout

<< ' \n alsó_korlát a 33. elemhez a pozícióban: '

<< ( it3 - értékeket. kezdődik ( ) ) ;

Visszatérés 0 ;

}

A kód úgy kezdődik, hogy meghatároz egy std::vektort, amely két névvel rendelkezik, és inicializálja néhány értékkel. Ezután a for ciklus segítségével kiírja a vektor elemeit.

Ezután a kód három std::vector::iterator változót deklarál it1, it2 és it3 néven. Ezek a változók az std::lower_bound() hívás eredményeinek tárolására szolgálnak az értékvektoron különböző argumentumokkal.

Az std::lower_bound() függvény három különböző értékkel hívható meg: 13, 23 és 33. Minden hívásnál az alsó_korlát() egy iterátort ad, amely a vektor első eleme felé mutat, amely nagyobb vagy egyenlő, mint a meghatározott értéket.

A kód ezután kiírja ezeknek az elemeknek a pozícióját a vektorban úgy, hogy kivonja a value.begin() iterátort az std::lower_bound() által visszaadott iterátorból, amely megadja az elem indexét a vektorban.

Kimenet

Következtetés

Az alsó_határ() metódus a C++ nyelvben megkeresi egy adott érték első előfordulását egy rendezett tárolóban. Ez a C++ könyvtárának része, és bináris keresések végrehajtására használható tömbökön, vektorokon és más rendezett tárolókban. A módszer egy iterátort ad, amely az adott értéknél nem kisebb tartomány első eleme felé mutat. Olvasson többet az alsó_határ() metódusról ebben a cikkben.