Co to jest metoda lower_Bound() w C++

Co To Jest Metoda Lower Bound W C



Język programowania C++ oferuje szeroki zakres funkcji i metod, które są szeroko stosowane. Metoda lower_bound() jest jedną z takich funkcji, która służy do znajdowania pierwszego wystąpienia danej wartości w posortowanym kontenerze. W tym artykule omówiono składnię, parametry, wartości zwracane i przykładowy kod metody lower_bound() w języku C++.

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 w C++ i służy do wyszukiwania binarnego na tablicach, wektorach i innych posortowanych kontenerach. Metoda lower_bound() zwraca iterator wskazujący na pierwszy element w określonym zakresie kontenera, który jest nie mniejszy niż podana wartość.

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ść.

#include

int 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::iterator o nazwach it1, it2 i it3. Te zmienne będą używane do przechowywania wyników wywołania std::lower_bound() na wektorze wartości z różnymi argumentami.

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 w C++ i może być używany do wyszukiwania binarnego na tablicach, wektorach i innych posortowanych kontenerach. Metoda daje iterator, który wskazuje pierwszy element w zakresie, który jest nie mniejszy niż podana wartość. Przeczytaj więcej na temat metody lower_bound() w tym artykule.