przejście do zawartości
zpr c++ quick reference
Narzędzia użytkownika
Zarejestruj się!
Zaloguj
Narzędzia witryny
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
Zarejestruj się!
Ostatnie zmiany
Menadżer multimediów
Indeks
Ślad:
min_element_max_element
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== 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: <code cpp> template <class ForwardIterator> ForwardIterator min_element ( ForwardIterator first, ForwardIterator last ); </code> <code cpp> 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 ); </code> max_element Pierwsza wersja przyjmuje jako parametr zakres: <code cpp> template <class ForwardIterator> ForwardIterator max_element ( ForwardIterator first, ForwardIterator last ); </code> <code cpp> 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 ); </code> ===== 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.1228949978.txt.gz
· ostatnio zmienione: 2008/12/10 23:59 przez
kkukolow
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry