fork download
  1. #include <iostream>
  2. #include <queue>
  3. #include <vector>
  4. #include <functional>
  5.  
  6. using namespace std;
  7.  
  8. template<typename T, template<class> class Compare = std::less, template<class, class> class Container = std::vector>
  9. std::priority_queue<T, Container<T, std::allocator<T>>, Compare<T>>
  10. make_pqueue()
  11. {
  12. return std::priority_queue<T, Container<T, std::allocator<T>>, Compare<T>>();
  13. }
  14.  
  15. int main() {
  16. int arr[] = {5, 3, 4, 2, 1};
  17. size_t size = sizeof(arr) / sizeof(*arr);
  18.  
  19. auto pqueue = make_pqueue<int,greater>();
  20.  
  21. for(size_t i = 0; i < size; ++i) {
  22. pqueue.push(arr[i]);
  23. }
  24.  
  25. while (!pqueue.empty()) {
  26. cout << pqueue.top() << endl;
  27. pqueue.pop();
  28. }
  29. }
  30.  
Success #stdin #stdout 0s 3060KB
stdin
Standard input is empty
stdout
1
2
3
4
5