12 #ifndef PRIORITY_QUEUE_H
13 #define PRIORITY_QUEUE_H
33 template<
class T,
class Compare >
42 virtual void insert (
const T&);
44 virtual const T&
top ()
const;
45 virtual bool remove (T&);
46 virtual size_t size ();
66 template <
class T,
class Compare>
79 template <
class T,
class Compare>
83 : m_comp (x_), m_impl (0)
90 template <
class T,
class Compare>
105 template <
class T,
class Compare>
113 template <
class T,
class Compare>
void
118 m_impl->insert (el_);
121 template <
class T,
class Compare> T
126 return m_impl->pop ();
129 template <
class T,
class Compare>
134 return m_impl->top ();
137 template <
class T,
class Compare>
142 return m_impl->remove (t_);
145 template <
class T,
class Compare>
150 return m_impl->size ();
153 template <
class T,
class Compare>
161 template <
class T,
class Compare>
166 return (*m_impl)[idx];
virtual void insert(const T &)
PriorityQueue & operator=(const PriorityQueue &)
virtual void setHeapImpl(size_t, const Compare &)
virtual T & operator[](int)
PriorityQueue_Impl< T, Compare > * m_impl
virtual const T & top() const
A collection of assert function wrappers.
Class PriorityQueue_Impl.
Heap-based implementation of PriorityQueue algorithm based on Robert Sedgewick's "Algorithms in C++"...
Interface class that defines Implementor of the Bridge pattern.
const PriorityQueue_Impl< T, Compare > * getPriorityQueueImpl() const
PriorityQueue(size_t max_=20)