Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
push_heap_pop_heap [2009/04/10 19:49] marszaaljr |
push_heap_pop_heap [2009/04/10 19:58] marszaaljr |
||
---|---|---|---|
Linia 19: | Linia 19: | ||
===== push_heap - konstrukcja ===== | ===== push_heap - konstrukcja ===== | ||
<code cpp> | <code cpp> | ||
- | template <class RandomAccessIterator> | + | template <class RandomAccessIterator> |
void push_heap ( RandomAccessIterator first, RandomAccessIterator last ); | void push_heap ( RandomAccessIterator first, RandomAccessIterator last ); | ||
- | template <class RandomAccessIterator, class Compare> | + | template <class RandomAccessIterator, class Compare> |
void push_heap ( RandomAccessIterator first, RandomAccessIterator last, | void push_heap ( RandomAccessIterator first, RandomAccessIterator last, | ||
Compare comp );</code> | Compare comp );</code> | ||
Linia 78: | Linia 78: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ===== pop_heap - konstrukcja ===== | ||
+ | |||
+ | <code cpp> | ||
+ | template <class RandomAccessIterator> | ||
+ | void pop_heap ( RandomAccessIterator first, RandomAccessIterator last ); | ||
+ | |||
+ | template <class RandomAccessIterator, class Compare> | ||
+ | void pop_heap ( RandomAccessIterator first, RandomAccessIterator last, | ||
+ | Compare comp ); | ||
+ | </code> | ||
+ | |||
+ | ===== pop_heap - argumenty ===== | ||
+ | |||
+ | Algorytm pop_heap zdejmuje element ze szczytu kopca. Pierwszy argument, to iterator wskazujący na początek kolekcji danych w postaci kopca, włącznie z elementem do usunięcia. Drugi argument, to iterator wskazujacy na koniec kolekcji. Po użyciu algorytmu, element usuwany jest umieszczany na pozycji last-1. Trzeci, opcjonalny argument, to funkcja, według której określony jest porządek kopca (relacja rozstrzygająca, który element jest "większy"). Funkcja musi być postaci: | ||
+ | <code cpp> | ||
+ | bool comp(type a, type b) | ||
+ | </code> | ||
+ | gdzie //type// jest typem obiektów przechowywanych w kolekcji. Jeżeli trzeci argument | ||
+ | nie zostanie podany, do porównania uzywany jest operator < . |