Jak používat funkci Upper_bound() v C++

Jak Pouzivat Funkci Upper Bound V C



Pomocí programovacího jazyka C++ lze vytvářet různé programy, včetně her, grafiky, webových serverů a dalších. Někdy však můžeme potřebovat provést některé operace s daty v našich programech, jako je vyhledávání, řazení nebo nalezení maximální nebo minimální hodnoty mezi řadou prvků. Jednou z funkcí, kterou lze použít k nalezení horní hranice hodnoty v seřazeném rozsahu prvků, je horní_mez().

Co je funkce upper_bound() v C++

Funkce upper_bound() v C++ je funkce, která přebírá seřazený rozsah prvků a hodnotu jako argumenty a vrací iterátor ukazující na první prvek v rozsahu, který je větší než hodnota.







Má dva různé typy argumentů:



číslo horní_mez ( na jednom. První , na jednom. poslední , hodnota )

Iterátory, které specifikují rozsah prvků, které mají být zkoumány, jsou první a poslední. Použitý interval obsahuje všechny prvky od prvního prvku až po konec, ale nezahrnuje prvek označený posledním. Hodnota je hodnota, se kterou se mají prvky porovnávat.



číslo horní_mez ( na jednom. První , na jednom. poslední ,  hodnota, porovnání komp )

V tomto případě binární funkce comp vytváří hodnotu, kterou lze převést na bool a přijímá dva parametry stejného typu jako položky rozsahu. Pokud určitá podmínka určuje, že první argument není vyšší než druhý, funkce musí vrátit výsledek true a pokud ne, měla by vrátit hodnotu false.





Jak používat funkci upper_bound() v C++

Funkci upper_bound() lze použít k nalezení horní hranice hodnoty v seřazeném rozsahu prvků v různých situacích. Můžeme jej například použít k nalezení pozice prvku v seřazeném poli nebo vektoru nebo k nalezení dalšího většího prvku v množině nebo mapě. Zde je několik příkladů, jak používat funkci upper_bound() v C++:

Příklad 1: Použití funkce upper_bound() k nalezení pozice prvku v seřazeném poli

Zde je příklad, který používá funkci upper_bound() k nalezení pozice prvku v seřazeném poli celých čísel a jeho zobrazení na obrazovce:



#include

#include

použitím jmenný prostor std ;

int hlavní ( )

{

int pole [ ] = { patnáct , 35 , Čtyři pět , 55 , 65 } ;

int A = velikost ( pole ) / velikost ( pole [ 0 ] ) ;

cout << 'Pole obsahuje: ' ;

pro ( int i = 0 ; i < A ; i ++ )

cout << pole [ i ] << '' ;

cout << ' \n ' ;

int b = Čtyři pět ; // deklarovat a inicializovat hodnotu

int * p = horní hranice ( pole, pole + a, b ) ;

cout << 'Horní hranice' << b << 'je na pozici:' << ( p - pole ) << ' \n ' ; // zobrazení pozice pomocí aritmetiky ukazatele

vrátit se 0 ;

}

Nejprve program definuje potřebné hlavičkové soubory a pole obsahující čísla a poté použije funkci sizeof() k získání velikosti pole. Dále se použije cyklus for k zobrazení prvků pole a poté je deklarováno celé číslo, jehož pozice v poli je určena pomocí ukazatele a je zobrazena ve výstupu:

Příklad 2: Použití funkce upper_bound() k nalezení dalšího většího prvku v sadě

Zde je příklad kódu, který používá funkci upper_bound() k vyhledání dalšího většího prvku než je daná hodnota v sadě celých čísel a jeho zobrazení na obrazovce:

#include

#include

#include

použitím jmenný prostor std ;

int hlavní ( )

{

soubor < int > na jednom = { patnáct , 25 , 35 , Čtyři pět , 55 } ; // deklaruje a inicializuje sadu celých čísel

cout << 'Daná čísla:' ;

pro ( auto A : na jednom ) // zobrazení prvků sady pomocí cyklu for založeného na rozsahu

cout << A << '' ;

cout << ' \n ' ;

int A = Čtyři pět ; // deklarovat a inicializovat hodnotu

auto to = horní hranice ( na jednom. začít ( ) , na jednom. konec ( ) , a ) ; // najít horní hranici x v množině pomocí upper_bound()

-li ( to ! = na jednom. konec ( ) ) // kontrola, zda je iterátor platný

cout << 'Další vyšší číslo než' << A << ' je ' << * to << ' \n ' ; // zobrazení prvku pomocí operátoru dereference

jiný

cout << 'Neexistuje vyšší číslo než' << A << ' \n ' ; // zobrazí zprávu, pokud žádný takový prvek není nalezen

vrátit se 0 ;

}

Nejprve kód definuje potřebné hlavičkové soubory a poté se definuje vektor pěti prvků, dále se vektor zobrazí pomocí klíčového slova auto, protože dokáže automaticky nastavit datový typ prvků. Dále je deklarována proměnná s hodnotou 45, která je poté porovnána s vektorem definovaným pomocí funkce upper_bound() a poté zobrazí výsledek porovnání:

Závěr

Funkce upper_bound() je funkce, která vrací iterátor ukazující na první prvek v seřazeném rozsahu, který je větší než daná hodnota. Chcete-li najít první číslo v intervalu, který je větší nebo roven zadanému číslu, použijte funkci upper_bound() v C++. To může být užitečné pro úkoly, jako je hledání dalšího nejvyššího čísla v seznamu nebo hledání prvního prvku v seřazeném poli, který je větší než daná prahová hodnota.