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++
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.
#includeint 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
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++