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

min_element, Pierwsza wersja przyjmuje jako parametr zakres:

template <class ForwardIterator>
  ForwardIterator min_element ( ForwardIterator first, ForwardIterator last );

Druga wersja przyjmuje jako parametr zakres i operator porównujący:

template <class ForwardIterator, class Compare>
  ForwardIterator min_element ( ForwardIterator first, ForwardIterator last,
                                Compare comp );

max_element, Pierwsza wersja przyjmuje jako parametr zakres:

template <class ForwardIterator>
  ForwardIterator max_element ( ForwardIterator first, ForwardIterator last );

Druga wersja przyjmuje jako parametr zakres i operator porównujący:

template <class ForwardIterator, class Compare>
  ForwardIterator max_element ( ForwardIterator first, ForwardIterator last,
                                Compare comp );

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 wskazujący na element najmniejszy bądź największy

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.1228950141.txt.gz · ostatnio zmienione: 2008/12/11 00:02 przez kkukolow