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}} | ||