C++ Data Structures (min-max heap, bounded priority queue)