Narzędzia użytkownika

Narzędzia witryny


min_element_max_element

To jest stara wersja strony!


Algorytm min_element max_element

min_element i max_element to algorytmy zwracające najmniejszy/największy element z zakresu [firstElement, lastElement). firstElement i lastElement są iteratorami wskazującymi na pozycję w kontenerze (np. listy, wektora). Porównywanie jest realizowane jest za pomocą domyślnego (wbudowanego) operatora mniejszości < . Dodatkowo możliwe jest podanie jako trzeciego parametru funkcji w roli operatora <, która będzie użyta do znalezienia najmniejszego/największego elementu. Funkcja ta zwraca true jeżeli jej pierwszy parametr jest mniejszy od drugiego parametru.

Deklaracja

W pliku nagłówkowym algorithm

template <class InputIterator, class OutputIterator, class UnaryFunction>
OutputIterator transform(InputIterator first1, InputIterator last1,
                         OutputIterator result, UnaryFunction op);
 
 
template <class InputIterator1, class InputIterator2, class OutputIterator, class BinaryFunction>
OutputIterator transform(InputIterator1 first1, InputIterator1 last1,
                         InputIterator2 first2, OutputIterator result,
                         BinaryFunction op);

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

Iterator na kolejny element za ostatnim ze zmodyfikowanych przez algorytm (należy on do tej samej sekwencji co iterator result)

Ograniczenia

  • Funkcja op powinna być pozbawiona efektów ubocznych.
  • Poprawność wykonania nie może zależeć od kolejności wywoływania operacji dla poszczególnych elementów. W szczególności result nie może należeć do zakresu [first1 + 1, last1) lub analogicznego [first2 + 1, first2+ last1-first1). Nic jednak nie stoi na przeszkodzie, aby result był równy first1 lub first2 (wtedy algorytm wykonuje transformację w miejscu)

W przypadku potrzeby użycia algorytmu pozbawionego tych ograniczeń należy stosować algorytm for_each

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)

min_element_max_element.1228949699.txt.gz · ostatnio zmienione: 2008/12/10 23:54 przez kkukolow