Язык программирования C++. Вводный курс

Алгоритм pop_heap()


template< class RandomAccessIterator >

void

pop_heap( RandomAccessIterator first,

          RandomAccessIterator last );

template< class RandomAccessIterator, class Compare >

void

pop_heap( RandomAccessIterator first,

          RandomAccessIterator last, Compare comp );

pop_heap() в действительности не исключает наибольший элемент, а переупорядочивает хип. Он переставляет элементы в позициях first и last-1, а затем перестраивает в хип последовательность в диапазоне [first,last-1). После этого “вытолкнутый” элемент можно получить посредством функции-члена back()

контейнера либо по-настоящему исключить его с помощью pop_back(). В первом варианте при сравнении используется оператор “меньше”, определенный для типа элементов контейнера, а во втором – операция comp.



Содержание раздела