22 #ifndef MY_PRIORITY_QUEUE_H
23 #define MY_PRIORITY_QUEUE_H
29 template <
class T,
class Compare>
33 vector<T> waiting_queue;
41 int push(
const T& elt);
43 bool empty(
void)
const;
47 const T& at(
int pos)
const;
50 void resetCurrentPosition();
52 const T& current_element()
const;
54 void erase_current_element();
55 const int current_position()
const;
56 bool last_element()
const;
58 void update_queue(
void);
64 template <
class T,
class Compare>
66 return waiting_queue.front();
72 template <
class T,
class Compare>
74 waiting_queue.erase(waiting_queue.begin());
84 template <
class T,
class Compare>
90 typename vector<T>::iterator it;
92 bool inserted =
false;
94 for(it = waiting_queue.begin(); it < waiting_queue.end(); it++) {
97 waiting_queue.insert(it, T(elt));
104 if(!inserted) waiting_queue.push_back(T(elt));
113 template <
class T,
class Compare>
115 return (
int) waiting_queue.size();
122 template <
class T,
class Compare>
124 return waiting_queue.empty();
132 template <
class T,
class Compare>
134 return waiting_queue.at(pos);
142 template <
class T,
class Compare>
144 return waiting_queue.at(pos);
150 template <
class T,
class Compare>
152 vector<T> waiting_queue_copy(waiting_queue);
154 waiting_queue.clear();
155 for(
int i = 0; i < (int) waiting_queue_copy.size(); i++) push(waiting_queue_copy.at(i));
161 template <
class T,
class Compare>
170 template <
class T,
class Compare>
173 return waiting_queue.at(current_pos);
180 template <
class T,
class Compare>
182 return waiting_queue.at(current_pos);
189 template <
class T,
class Compare>
191 return waiting_queue.at(current_pos);
198 template <
class T,
class Compare>
200 waiting_queue.erase(waiting_queue.begin() + current_pos);
208 template <
class T,
class Compare>
217 template <
class T,
class Compare>
219 return (current_pos >= (
int)(waiting_queue.size()-1));
bool empty(void) const
Definition: my_priority_queue.h:123
T top(void)
Definition: my_priority_queue.h:65
const T & current_element() const
Definition: my_priority_queue.h:181
bool last_element() const
Definition: my_priority_queue.h:218
void update_queue(void)
Definition: my_priority_queue.h:151
T & at(int pos)
Definition: my_priority_queue.h:133
void pop(void)
Definition: my_priority_queue.h:73
const int current_position() const
Definition: my_priority_queue.h:209
int size(void) const
Definition: my_priority_queue.h:114
int push(const T &elt)
Definition: my_priority_queue.h:85
T next_element(void)
Definition: my_priority_queue.h:171
Definition: my_priority_queue.h:30
void resetCurrentPosition()
Definition: my_priority_queue.h:162
void erase_current_element()
Definition: my_priority_queue.h:199