#include <cstdlib>
#include <vector>
#include <queue>

template<class T, class Pr = less<typename std::vector<T>::value_type> >
class PriorityQueue
  : public std::priority_queue<T, std::vector<T>, Pr>
{
public:
  void print () {
    std::cout << "Priority_Queue" << std::endl;
    for (std::vector<T>::iterator i = c.begin (); i != c.end (); ++i)
      std::cout << "El: " << *i << std::endl;
  }
};

int main ()
{
  PriorityQueue<int> pq;
  
  std::srand (time (NULL));

  for (int i = 0; i < 50; ++i)
    pq.push (std::rand () % 1000);

  pq.top ();
  pq.print ();

  while (!pq.empty ())
    {
      std::cout << "PQ: " << pq.top () << std::endl;
      pq.pop ();
    }
}

// EOF //

