Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lower_bound_upper_bound [2009/04/28 14:58] jg |
lower_bound_upper_bound [2009/04/28 15:08] (aktualna) jg |
||
---|---|---|---|
Linia 40: | Linia 40: | ||
===== Wartość zwracana ===== | ===== 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ę. | + | W wyniku działania obu funkcji zwracany jest iterator wskazujący na element badanego 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ę. |
===== Użycie ===== | ===== Użycie ===== | ||
- | //analogicznie dla// **upper_bound** | ||
<code cpp>lower_bound(first, last, value [, comp])</code> | <code cpp>lower_bound(first, last, value [, comp])</code> | ||
+ | //analogicznie dla// **upper_bound** | ||
- | Algorytm przeszukuje dane w zakresie **[first;last)**. Dla poprawnego działania należy podać iteratory na pierwszy element ciągu przeszukiwanego oraz na pierwszy element za ostatnim do przeszukiwania. Jako wartość **//value//** należy podać obiekt klasy elementów zamieszczonych w przeszukiwanym ciągu. | + | Algorytm przeszukuje dane w zakresie **[first;last)**. Dla poprawnego działania należy podać iteratory na pierwszy element ciągu przeszukiwanego oraz na pierwszy element za ostatnim do przeszukiwania. Jako **//value//** należy podać obiekt klasy elementów zamieszczonych w przeszukiwanym ciągu. |
Prosty przykład użycia: | Prosty przykład użycia: | ||
<code cpp>#include <vector> | <code cpp>#include <vector> | ||
Linia 63: | Linia 63: | ||
</code> | </code> | ||
- | Wersja z predykatem wymaga podania jako czwartego argumentu obiektu funkcyjnego. Przykład użycia: | + | Wersja z predykatem wymaga podania jako czwartego argumentu obiektu funkcyjnego służącego do porównywania danych obiektów. Przykład użycia: |
<code cpp>#include <vector> | <code cpp>#include <vector> | ||
#include <algorithm> | #include <algorithm> | ||
Linia 93: | Linia 93: | ||
Δ Wersja z predykatem wymaga danych posortowanych przy użyciu tego predykatu. | Δ Wersja z predykatem wymaga danych posortowanych przy użyciu tego predykatu. | ||
+ | |||
+ | ===== Przykładowy program wykorzystujący algorytmy upper_bound oraz lower_bound ===== | ||
+ | {{upper_lower_bound.cpp}} |