// algo/heap1.cpp #include "algostuff.hpp" using namespace std; int main() { vector coll; INSERT_ELEMENTS(coll,3,7); INSERT_ELEMENTS(coll,5,9); INSERT_ELEMENTS(coll,1,4); PRINT_ELEMENTS (coll, "on entry: "); // Преобразование коллекции в кучу make_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after make_heap(): "); // Извлечение следующего элемента из кучи pop_heap (coll.begin(), coll.end()); coll.pop_back(); PRINT_ELEMENTS (coll, "after pop_heap(): "); // Занесение нового элемента в кучу coll.push_back (17); push_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after push_heap(): "); /* Преобразование кучи в упорядоченную коллекцию * - ВНИМАНИЕ: после вызова интервал перестает быть кучей */ sort_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after sort_heap(): "); }