Narzędzia użytkownika

Narzędzia witryny


lower_bound_upper_bound

To jest stara wersja strony!


Algorytmy lower_bound oraz upper_bound

Funkcje lower_bound oraz upper_bound są standardowymi szablonami funkcji biblioteki „algorithm”. Są to algorytmy niezmieniające dla danych posortowanych.

Nagłówek algorytmu

#include <algorithm>

Deklaracja

lower_bound

wersja wykorzystująca „operator<”

	template <class ForwardIterator, class LessThanComparable>
 	ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
 				    const LessThanComparable& value);

wersja wykorzystująca predykat do spełnienia

        template <class ForwardIterator, class T, class StrictWeakOrdering>
 	ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
 				    const T& value, StrictWeakOrdering comp);

upper_bound

wersja wykorzystująca „operator<”

	template <class ForwardIterator, class LessThanComparable>
 	ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
 				    const LessThanComparable& value);

wersja wykorzystująca predykat do spełnienia

        template <class ForwardIterator, class T, class StrictWeakOrdering>
 	ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last,
 				    const T& value, StrictWeakOrdering comp);

Parametry

ForwardIterator first - element kolekcji, od którego rozpocznie się wyszukiwanie

ForwardIterator last - element kolekcji, który jako pierwszy nie będzie branu pod uwagę przez algorytm

const LessThanComparable& value - element wyszukiwany (do wstawienia)

StrictWeakOrdering comp - obiekt funkcyjny porównujacy dwa elementy (w przypadku użycia wersji z predykatem)

Wartość zwracana

W wyniku działania obu funkcji zwracany jest iterator wskazujący na element zadanego zbioru. W wypadku „lower_bound” wskazywana jest pierwsza pozycja, na ktorą należy wstawić zadany element, aby nie zaburzyć posortowanego ciągu. „upper_bound” zwraca ostatnią taką pozycję.

Ostrzeżenie

Δ Algorytmy wymagają posortowanych zbiorów. Działanie na danych nieposortowanych może być źródłem błędów.

Δ Wersja bez predykatu wymaga do działania operator < dla klasy umieszczonej w zbiorze.

Δ Wersja z predykatem wymaga danych posortowanych przy użyciu tego predykatu.

lower_bound_upper_bound.1240922398.txt.gz · ostatnio zmienione: 2009/04/28 14:39 przez jg