C++ already has a priority_queue class as part of the standard library.
Code:
 template <class T, class Container = vector<T>,
 	class Compare = less<typename Container::value_type> >
 class priority_queue;