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