Binary Heap

Your task is to implement a binary max-heap (http://en.wikipedia.org/wiki/Binary_heap) in C++.

Your heap should have the time complexities $O(\log n)$ for the insert and remove operations, and $O(1)$ for the size and maximum operations.

Template

You can download the template heap.cpp that you should implement from the Attachments menu.

Testing

To test your program, download the heap.h file from the Attachments menu and put it in the same directory as your solution.