Wie zu verwenden lower_bound(upper_bound) zu finden, die position jeder Zahl in der Reihe?
Zum Beispiel habe ich ein array mit Elementen 1,7,9,23,34,47,67,89,123,234,345,567.
Ich muss wissen, die position von 123.
std::find
Sollte ganz gut funktionieren. Sie können subtrahierenstd::begin(array)
um einen (numerischen) index eher als ein iterator, wenn das, was Sie brauchen.- Haben Sie versucht, irgendetwas? bitte geben Sie eine Minimale, Vollständige und Überprüfbare Beispiel
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deklarieren und initialisieren Sie das array mit den Elementen. Dann erstellen Sie eine
vector
mit int-Werten. Verwendenupper_bound()
auf dievector
. Hier ist ein Beispiel:Hoffe, es hilft!!
std::upper_bound
undstd::lower_bound
direkt auf dem array. Es gibt keine Notwendigkeit für diesen Vektor.std::upper
gibt den ersten Wert größer als der gesuchte ein. Wenn, zum Beispiel, Sie hatten versucht, die für den Wert 122, würden Sie bekommen noch position 9 (oder vielmehr, 8), obwohl der Wert, den Sie suchten, nicht gefunden.