language: C++11 (gcc-4.7.2)
date: 176 days 15 hours ago
link:
visibility: private
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <queue>
#include <vector>
#include <functional>
 
using namespace std;
 
template<typename T, template<class> class Compare = std::less, template<class, class> class Container = std::vector>
std::priority_queue<T, Container<T, std::allocator<T>>, Compare<T>>
make_pqueue()
{
    return std::priority_queue<T, Container<T, std::allocator<T>>, Compare<T>>();
}
 
int main() {
    int arr[] = {5, 3, 4, 2, 1};
    size_t size = sizeof(arr) / sizeof(*arr);
 
    auto pqueue = make_pqueue<int,greater>();
 
    for(size_t i = 0; i < size; ++i) {
        pqueue.push(arr[i]);
    }
 
    while (!pqueue.empty()) {
        cout << pqueue.top() << endl;
        pqueue.pop();
    }
}