So verwenden Sie die Funktion Upper_bound() in C++

So Verwenden Sie Die Funktion Upper Bound In C



Mit der Programmiersprache C++ können zahlreiche Programme erstellt werden, darunter Spiele, Grafiken, Webserver und mehr. Manchmal müssen wir jedoch möglicherweise einige Operationen an den Daten in unseren Programmen durchführen, z. B. Suchen, Sortieren oder das Finden des Maximal- oder Minimalwerts in einer Reihe von Elementen. Eine der Funktionen, die verwendet werden können, um die Obergrenze eines Werts in einem sortierten Bereich von Elementen zu finden, ist Upper_bound().

Was ist die Funktion „upper_bound()“ in C++?

Die Funktion „upper_bound()“ in C++ ist eine Funktion, die einen sortierten Bereich von Elementen und einen Wert als Argumente verwendet und einen Iterator zurückgibt, der auf das erste Element im Bereich zeigt, das größer als der Wert ist.







Es gibt zwei verschiedene Arten von Argumenten:



num obere_Grenze ( Auf eins. Erste , Auf eins. zuletzt , Wert )

Iteratoren, die den Bereich der zu untersuchenden Elemente angeben, sind der erste und der letzte. Das verwendete Intervall enthält alle Elemente vom ersten Element bis zum Ende, jedoch nicht das durch letzte angegebene Element. Wert ist der Wert, mit dem die Elemente verglichen werden sollen.



num obere_Grenze ( Auf eins. Erste , Auf eins. zuletzt , Wert, Vergleich vergleichen )

In diesem Fall erzeugt die Binärfunktion comp einen Wert, der in einen Bool-Wert konvertiert werden kann und zwei Parameter desselben Typs als Elemente des Bereichs akzeptiert. Wenn eine bestimmte Bedingung vorschreibt, dass das erste Argument nicht höher als das zweite ist, muss die Funktion das Ergebnis „true“ zurückgeben. Wenn nicht, sollte sie „false“ zurückgeben.





So verwenden Sie die Funktion „upper_bound()“ in C++

Mit der Funktion „upper_bound()“ kann in verschiedenen Situationen die Obergrenze eines Werts in einem sortierten Bereich von Elementen ermittelt werden. Wir können damit beispielsweise die Position eines Elements in einem sortierten Array oder Vektor ermitteln oder das nächstgrößere Element in einer Menge oder Karte finden. Hier sind einige Beispiele für die Verwendung der Funktion „upper_bound()“ in C++:

Beispiel 1: Verwenden der Funktion „upper_bound()“, um die Position eines Elements in einem sortierten Array zu ermitteln

Hier ist ein Beispiel, das die Funktion „upper_bound()“ verwendet, um die Position eines Elements in einem sortierten Array von Ganzzahlen zu finden und es auf dem Bildschirm anzuzeigen:



#include

#include

verwenden Namensraum std ;

int hauptsächlich ( )

{

int Array [ ] = { fünfzehn , 35 , Vier fünf , 55 , 65 } ;

int A = Größe von ( Array ) / Größe von ( Array [ 0 ] ) ;

cout << „Array enthält:“ ;

für ( int ich = 0 ; ich < A ; ich ++ )

cout << Array [ ich ] << ' ' ;

cout << ' \N ' ;

int B = Vier fünf ; // einen Wert deklarieren und initialisieren

int * P = obere Grenze ( Array, Array + a, b ) ;

cout << „Obergrenze von“ << B << „ist an Position:“ << ( P - Array ) << ' \N ' ; // Position mittels Zeigerarithmetik anzeigen

zurückkehren 0 ;

}

Zuerst definiert das Programm die erforderlichen Header-Dateien und das Array mit Zahlen und verwendet dann die Funktion sizeof(), um die Größe des Arrays zu ermitteln. Als nächstes wird eine for-Schleife verwendet, um die Elemente des Arrays anzuzeigen, und dann wird eine Ganzzahl deklariert, deren Position im Array mithilfe des Zeigers bestimmt und in der Ausgabe angezeigt wird:

Beispiel 2: Verwenden der Funktion „upper_bound()“, um das nächstgrößere Element in einer Menge zu finden

Hier ist ein Beispielcode, der die Funktion „upper_bound()“ verwendet, um das nächstgrößere Element als ein gegebener Wert in einer Menge von Ganzzahlen zu finden und es auf dem Bildschirm anzuzeigen:

#include

#include

#include

verwenden Namensraum std ;

int hauptsächlich ( )

{

Satz < int > Auf eins = { fünfzehn , 25 , 35 , Vier fünf , 55 } ; // eine Menge von Ganzzahlen deklarieren und initialisieren

cout << „Gegebene Zahlen:“ ;

für ( Auto A : Auf eins ) // die eingestellten Elemente mithilfe einer bereichsbasierten for-Schleife anzeigen

cout << A << ' ' ;

cout << ' \N ' ;

int A = Vier fünf ; // einen Wert deklarieren und initialisieren

Auto Es = obere Grenze ( Auf eins. beginnen ( ) , Auf eins. Ende ( ) , A ) ; // finde die Obergrenze von x in der Menge mit Upper_bound()

Wenn ( Es ! = Auf eins. Ende ( ) ) // Überprüfen Sie, ob der Iterator gültig ist

cout << „Die nächsthöhere Zahl als“ << A << ' Ist ' << * Es << ' \N ' ; // das Element mit dem Dereferenzierungsoperator anzeigen

anders

cout << „Es gibt keine höhere Zahl als“ << A << ' \N ' ; // eine Meldung anzeigen, wenn kein solches Element gefunden wird

zurückkehren 0 ;

}

Zuerst definiert der Code die notwendigen Header-Dateien und dann wird ein Vektor aus fünf Elementen definiert. Anschließend wird der Vektor mit dem Schlüsselwort auto angezeigt, da er den Datentyp der Elemente automatisch festlegen kann. Als nächstes wird eine Variable mit dem Wert 45 deklariert, die dann mit dem mit der Funktion „upper_bound()“ definierten Vektor verglichen wird und anschließend das Vergleichsergebnis anzeigt:

Abschluss

Die Funktion „upper_bound()“ ist eine Funktion, die einen Iterator zurückgibt, der auf das erste Element in einem sortierten Bereich zeigt, das größer als ein gegebener Wert ist. Um die erste Zahl in einem Intervall zu finden, die größer oder gleich einer angegebenen Zahl ist, verwenden Sie die Funktion „upper_bound()“ in C++. Dies kann für Aufgaben wie das Suchen der nächsthöheren Zahl in einer Liste oder das Suchen des ersten Elements in einem sortierten Array nützlich sein, das größer als ein bestimmter Schwellenwert ist.