19 PriorityQueue(
int (*compare)(T &v1, T &v2)) { compare_cb = compare; };
21 bool enqueue(T &&data) {
22 for (
auto it = l.begin(); it != l.end(); ++it) {
23 if (compare_cb(*it, data) > 0) {
28 return l.push_back(data);
32 if (l.end()->prior ==
nullptr)
return false;
33 data = *(l.end()->prior);
37 bool dequeue(T &data) {
return l.pop_front(data); }
39 size_t size() {
return l.size(); }
41 bool clear() {
return l.clear(); }
43 bool empty() {
return l.empty(); }
45 void setAllocator(
Allocator &allocator) { l.setAllocator(allocator); }
49 int (*compare_cb)(T &v1, T &v2);