/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */ #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: "); // convert collection into a heap make_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after make_heap(): "); // pop next element out of the heap pop_heap (coll.begin(), coll.end()); coll.pop_back(); PRINT_ELEMENTS (coll, "after pop_heap(): "); // push new element into the heap coll.push_back (17); push_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after push_heap(): "); /* convert heap into a sorted collection * - NOTE: after the call it is no longer a heap */ sort_heap (coll.begin(), coll.end()); PRINT_ELEMENTS (coll, "after sort_heap(): "); }