Co to jest metoda lower_bound()?
Metoda lower_bound() w języku C++ znajduje pierwsze wystąpienie danej wartości w posortowanym kontenerze. Jest częścią biblioteki
Składnia
Metoda lower_bound() w języku C++ ma dwie odmiany: składnię domyślną i niestandardową.
Składnia domyślna
Domyślna składnia przyjmuje ForwardIterator wskazujący odpowiednio na pierwszy i ostatni element w zakresie, który ma być przeszukiwany, oraz wartość do porównania elementów w zakresie.
ForwardIterator dolna granica ( Najpierw ForwardIterator , ForwardIterator ostatni , konst T & wartość ) ;
Niestandardowa składnia
Niestandardowa składnia dodatkowo przyjmuje zdefiniowaną przez użytkownika binarną funkcję predykatu, która jest zgodna ze ścisłym słabym porządkiem w celu uporządkowania elementów.
ForwardIterator dolna granica ( Najpierw ForwardIterator , ForwardIterator ostatni , konst T & wartość , Porównaj komp ) ;
Parametry
Metoda lower_bound() w języku C++ przyjmuje trzy parametry.
pierwszy, ostatni: Pierwsze dwa parametry, „first” i „last”, określają zakres [first, last), w którym metoda szuka dolnej granicy. Zakres określony jest dwoma parametrami, a mianowicie „first” i „last”. Zakres obejmuje wszystkie elementy między „pierwszym” a „ostatnim” iteratorem, ale wyklucza element wskazywany przez „ostatni” iterator.
wartość: Trzeci parametr metody lower_bound() jest określany jako „val”. Reprezentuje wartość dolnej granicy, którą należy znaleźć w określonym zakresie. Kiedy wywoływana jest metoda lower_bound(), szuka pierwszego elementu w określonym zakresie kontenera, który jest większy lub równy podanej wartości „val”.
skład: Metoda lower_bound() może również akceptować binarną funkcję porównania jako czwarty parametr. Przyjmuje dwa argumenty: Typ wskazywany przez ForwardIterator , a drugie jest wartość . Następnie funkcja zwraca wartość logiczną na podstawie porównania między dwoma argumentami. Argument comp nie zmienia żadnego ze swoich argumentów i może być tylko wskaźnikiem funkcji lub obiektem funkcji.
Wartość zwracana
Metoda lower_bound() zwraca iterator wskazujący na pierwszy element, który jest większy lub równy wartość . Jeśli wszystkie elementy w określonym zakresie kontenera są mniejsze niż podana wartość wartość , metoda lower_bound() zwraca iterator wskazujący na ostatni element w zakresie, a jeśli wszystkie elementy są większe niż wartość , daje iterator, który wskazuje na pierwszy element w zakresie.
Przykładowy kod
Ten kod C++ demonstruje użycie funkcji std::lower_bound() w celu znalezienia pierwszego elementu w posortowanym wektorze, który jest nie mniejszy niż podana wartość.
#includeint główny ( )
{
// Wektor wejściowy
standardowe :: wektor < podwójnie > wartości { 10 , piętnaście , 20 , 25 , 30 } ;
// Drukuj wektor
standardowe :: cout << „Wektor zawiera:” ;
Do ( niepodpisany int I = 0 ; I < wartości. rozmiar ( ) ; I ++ )
standardowe :: cout << ' ' << wartości [ I ] ;
standardowe :: cout << ' \N ' ;
standardowe :: wektor < podwójnie >:: iterator to1 , to2 , to3 ;
// std :: dolna granica
to1 = standardowe :: Dolna granica ( wartości. zaczynać ( ) , wartości. koniec ( ) , 13 ) ;
to2 = standardowe :: Dolna granica ( wartości. zaczynać ( ) , wartości. koniec ( ) , 23 ) ;
to3 = standardowe :: Dolna granica ( wartości. zaczynać ( ) , wartości. koniec ( ) , 33 ) ;
standardowe :: cout
<< ' \N dolna granica dla elementu 13 na pozycji: '
<< ( to1 - wartości. zaczynać ( ) ) ;
standardowe :: cout
<< ' \N dolna granica dla elementu 23 na pozycji: '
<< ( to2 - wartości. zaczynać ( ) ) ;
standardowe :: cout
<< ' \N dolna granica dla elementu 33 na pozycji: '
<< ( to3 - wartości. zaczynać ( ) ) ;
powrót 0 ;
}
Kod zaczyna się od zdefiniowania std::vector typu o podwójnych nazwach wartości i zainicjowania go pewnymi wartościami. Następnie drukuje elementy wektora za pomocą pętli for.
Następnie kod deklaruje trzy zmienne std::vector
Funkcja std::lower_bound() jest wywoływana z trzema różnymi wartościami: 13, 23 i 33. Przy każdym wywołaniu funkcja lower_bound() zwraca iterator wskazujący pierwszy element wektora, który jest większy lub równy określona wartość.
Następnie kod drukuje pozycje tych elementów w wektorze, odejmując iterator values.begin() od iteratora zwróconego przez std::lower_bound(), co daje indeks elementu w wektorze.
Wyjście
Wniosek
Metoda lower_bound() w języku C++ znajduje pierwsze wystąpienie danej wartości w posortowanym kontenerze. Jest częścią biblioteki