Алгоритм push_heap()
template< class RandomAccessIterator > void push_heap( RandomAccessIterator first, RandomAccessIterator last ); template< class RandomAccessIterator, class Compare > void push_heap( RandomAccessIterator first, |
RandomAccessIterator last, Compare comp );
push_heap()
предполагает, что последовательность, ограниченная диапазоном [first,last-1), – хип и что новый добавляемый к хипу элемент находится в позиции last-1. Все элементы в диапазоне [first,last) реорганизуются в новый хип. Перед вызовом push_heap()
необходимо вставить новый элемент в конец контейнера, возможно, применив функцию push_back()
(это показано в примере ниже). В первом варианте при сравнении используется оператор “меньше”, определенный для типа элементов контейнера; во втором – операция comp.