Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
min_element_max_element [2008/12/11 00:11] kkukolow |
min_element_max_element [2008/12/11 00:21] (aktualna) kkukolow |
||
|---|---|---|---|
| Linia 31: | Linia 31: | ||
| ForwardIterator max_element ( ForwardIterator first, ForwardIterator last, | ForwardIterator max_element ( ForwardIterator first, ForwardIterator last, | ||
| Compare comp ); | Compare comp ); | ||
| + | </code> | ||
| + | |||
| + | Równoważny kod: | ||
| + | <code cpp> | ||
| + | template <class ForwardIterator> | ||
| + | ForwardIterator min_element ( ForwardIterator first, ForwardIterator last ) | ||
| + | { | ||
| + | ForwardIterator lowest= first; | ||
| + | if (first==last) return last; | ||
| + | while (++first!=last) | ||
| + | if (*first<*lowest) // or: if (comp(*first,*lowest)) for the comp version | ||
| + | lowest=first; | ||
| + | return lowest; | ||
| + | } | ||
| </code> | </code> | ||
| Linia 36: | Linia 50: | ||
| ===== Parametry ===== | ===== Parametry ===== | ||
| * **first, last** - Iteratory wskazujące z jakiego zakresu wyszukiwany będzie najmniejszy/największy element. Zakres to [first, last), co oznacza że zawiera on wszystkie elementy rozpoczynając od elementu first do elementu poprzedzającego last. | * **first, last** - Iteratory wskazujące z jakiego zakresu wyszukiwany będzie najmniejszy/największy element. Zakres to [first, last), co oznacza że zawiera on wszystkie elementy rozpoczynając od elementu first do elementu poprzedzającego last. | ||
| - | * **comp** - funkcja realizująca operator mniejszości <. Jako argumenty przyjmuje element pierwszy i element drugi. Zwraca true jeżeli element pierwszy jest mniejszy niż element drugi. | + | * **comp** - funkcja realizująca operator mniejszości <. Jako argumenty przyjmuje element pierwszy i element drugi. Zwraca **true** jeżeli //element pierwszy// jest mniejszy niż //element drugi//. |
| ===== Zwracana wartość ===== | ===== Zwracana wartość ===== | ||
| Linia 43: | Linia 57: | ||
| ===== Ograniczenia ===== | ===== Ograniczenia ===== | ||
| * W podanym zakresie [first, last) powinien znajdować się co najmniej jeden element | * W podanym zakresie [first, last) powinien znajdować się co najmniej jeden element | ||
| - | * Jeżeli first==last zwracany jest | + | * Jeżeli first==last zwracany jest last |
| * Jeżeli jest kilka elementów najmniejszych/największych zwracany jest ten, który występuje wcześniej w kontenerze | * Jeżeli jest kilka elementów najmniejszych/największych zwracany jest ten, który występuje wcześniej w kontenerze | ||
| ===== Złożoność ===== | ===== Złożoność ===== | ||
| - | Liniowa: wywołuje funkcję op i dokonuje przyporządkowania zwracanej przez nią wartości co najwyżej tylokrotnie, ile jest elementów w zakresie [first1, last1) | + | Liniowa: wykonuje operacje porównania n-1 razy, gdzie n to ilość elementów w zakresie |