C++ Priority Queues are like queues, but the elements inside the queue are ordered by some predicate.
| Constructors | construct a new priority queue |
| empty | true if the priority queue has no elements |
| pop | removes the top element of a priority queue |
| push | inserts an element into the priority queue |
| size | returns the number of items in the priority queue |
| top | returns the top element of the priority queue |