Was ist die Methode „lower_Bound()“ in C++?

Was Ist Die Methode Lower Bound In C



Die Programmiersprache C++ bietet eine breite Palette an Funktionen und Methoden, die häufig genutzt werden. Die Methode „lower_bound()“ ist eine solche Funktion, die verwendet wird, um das erste Vorkommen eines bestimmten Werts in einem sortierten Container zu finden. Dieser Artikel behandelt die Syntax, Parameter, Rückgabewerte und einen Beispielcode für die Methode „lower_bound()“ in C++.

Was ist die Methode „lower_bound()“?

Die Methode „lower_bound()“ in C++ findet das erste Vorkommen eines bestimmten Werts in einem sortierten Container. Es ist Teil der -Bibliothek in C++ und wird verwendet, um binäre Suchen in Arrays, Vektoren und anderen sortierten Containern durchzuführen. Die Methode „lower_bound()“ gibt einen Iterator zurück, der auf das erste Element in einem angegebenen Bereich eines Containers zeigt, der nicht kleiner als der angegebene Wert ist.

Syntax







Die Methode „lower_bound()“ in C++ hat zwei Varianten: eine Standard- und eine benutzerdefinierte Syntax.



Standardsyntax

Die Standardsyntax umfasst einen ForwardIterator, der auf das erste bzw. das letzte Element im zu durchsuchenden Bereich zeigt, sowie einen Wert zum Vergleichen der Elemente im Bereich.



ForwardIterator untere_Grenze ( ForwardIterator zuerst , ForwardIterator zuletzt , const T & val ) ;

Benutzerdefinierte Syntax

Die benutzerdefinierte Syntax umfasst zusätzlich eine benutzerdefinierte binäre Prädikatfunktion, die einer strikten schwachen Reihenfolge folgt, um die Elemente zu ordnen.





ForwardIterator untere_Grenze ( ForwardIterator zuerst , ForwardIterator zuletzt , const T & val , Vergleiche comp ) ;

Parameter

Die Methode „lower_bound()“ in C++ benötigt drei Parameter.

Zuerst, zuletzt: Die ersten beiden Parameter „first“ und „last“ bestimmen den Bereich [first, last), in dem die Methode nach der Untergrenze sucht. Der Bereich wird durch zwei Parameter angegeben, nämlich „first“ und „last“. Der Bereich umfasst alle Elemente zwischen dem „ersten“ und dem „letzten“ Iterator, schließt jedoch das Element aus, auf das der „letzte“ Iterator zeigt.



Wert: Der dritte Parameter der Methode „lower_bound()“ wird als „val“ bezeichnet. Es stellt den Wert der Untergrenze dar, der innerhalb des angegebenen Bereichs gefunden werden muss. Wenn die Methode „lower_bound()“ aufgerufen wird, sucht sie innerhalb des angegebenen Bereichs eines Containers nach dem ersten Element, das größer oder gleich dem angegebenen Wert „val“ ist.

comp: Die Methode „lower_bound()“ kann auch eine binäre Vergleichsfunktion als vierten Parameter akzeptieren. Es werden zwei Argumente benötigt: Der Typ, auf den durch zeigt ForwardIterator , und der zweite ist val . Die Funktion gibt dann einen booleschen Wert zurück, der auf einem Vergleich zwischen den beiden Argumenten basiert. Das Argument comp ändert keines seiner Argumente und es kann nur ein Funktionszeiger oder ein Funktionsobjekt sein.

Rückgabewert

Die Funktion „lower_bound()“ gibt einen Iterator zurück, der auf das erste Element zeigt, das größer oder gleich ist val . Wenn alle Elemente im angegebenen Bereich eines Containers kleiner als der angegebene Wert sind val , gibt die Methode „lower_bound()“ einen Iterator zurück, der auf das letzte Element im Bereich zeigt, und wenn alle Elemente größer als sind val , es gibt einen Iterator, der auf das erste Element im Bereich zeigt.

Beispielcode

Dieser C++-Code demonstriert die Verwendung der Funktion std::lower_bound(), um das erste Element in einem sortierten Vektor zu finden, das nicht kleiner als ein gegebener Wert ist.

#include

int hauptsächlich ( )

{

// Eingabevektor

std :: Vektor < doppelt > Werte { 10 , fünfzehn , zwanzig , 25 , 30 } ;

// Vektor drucken

std :: cout << „Vektor enthält:“ ;

für ( ohne Vorzeichen int ich = 0 ; ich < Werte. Größe ( ) ; ich ++ )

std :: cout << ' ' << Werte [ ich ] ;

std :: cout << ' \N ' ;

std :: Vektor < doppelt >:: Iterator it1 , it2 , it3 ;

// std :: untere_Grenze

it1 = std :: untere_Grenze ( Werte. Start ( ) , Werte. Ende ( ) , 13 ) ;

it2 = std :: untere_Grenze ( Werte. Start ( ) , Werte. Ende ( ) , 23 ) ;

it3 = std :: untere_Grenze ( Werte. Start ( ) , Werte. Ende ( ) , 33 ) ;

std :: cout

<< ' \N untere_Grenze für Element 13 an Position: „

<< ( it1 - Werte. Start ( ) ) ;

std :: cout

<< ' \N untere_Grenze für Element 23 an Position: „

<< ( it2 - Werte. Start ( ) ) ;

std :: cout

<< ' \N untere_Grenze für Element 33 an Position: „

<< ( it3 - Werte. Start ( ) ) ;

zurückkehren 0 ;

}

Der Code beginnt mit der Definition eines std::vector vom Typ „doppelt benannte Werte“ und der Initialisierung mit einigen Werten. Anschließend werden die Elemente des Vektors mithilfe einer for-Schleife gedruckt.

Als Nächstes deklariert der Code drei std::vector::iterator-Variablen mit den Namen it1, it2 und it3. Diese Variablen werden verwendet, um die Ergebnisse des Aufrufs von std::lower_bound() für den Wertevektor mit verschiedenen Argumenten zu speichern.

Die Funktion „std::lower_bound()“ wird mit drei verschiedenen Werten aufgerufen: 13, 23 und 33. Bei jedem Aufruf gibt „lower_bound()“ einen Iterator aus, der auf das erste Element im Vektor zeigt, das größer oder gleich ist Spezifizierter Wert.

Der Code gibt dann die Positionen dieser Elemente im Vektor aus, indem er den Iterator „values.begin()“ vom Iterator subtrahiert, der von „std::lower_bound()“ zurückgegeben wird, was den Index des Elements im Vektor ergibt.

Ausgang

Abschluss

Die Methode „lower_bound()“ in C++ findet das erste Vorkommen eines bestimmten Werts in einem sortierten Container. Es ist Teil der -Bibliothek in C++ und kann zur binären Suche in Arrays, Vektoren und anderen sortierten Containern verwendet werden. Die Methode gibt einen Iterator zurück, der auf das erste Element in einem Bereich zeigt, der nicht kleiner als der angegebene Wert ist. Lesen Sie mehr über die Methode „lower_bound()“ in diesem Artikel.