# Priority queue of pairs in C++ (Ordered by first)

• Difficulty Level : Easy
• Last Updated : 04 Oct, 2018

In C++, priority_queue implements heap. Below are some examples of creating priority queue of pair type.

Max Priority queue (Or Max heap) ordered by first element

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

 `// C++ program to create a priority queue of pairs.``// By default a max heap is created ordered``// by first element of pair.``#include `` ` `using` `namespace` `std;`` ` `// Driver program to test methods of graph class``int` `main()``{``    ``// By default a max heap is created ordered``    ``// by first element of pair.``    ``priority_queue > pq;`` ` `    ``pq.push(make_pair(10, 200));``    ``pq.push(make_pair(20, 100));``    ``pq.push(make_pair(15, 400));`` ` `    ``pair<``int``, ``int``> top = pq.top();``    ``cout << top.first << ``" "` `<< top.second;``    ``return` `0;``}`

Output :

`20 100`

Min Priority queue (Or Min heap) ordered by first element

 `// C++ program to create a priority queue of pairs.``// We can create a min heap by passing adding two ``// parameters, vector and greater().``#include `` ` `using` `namespace` `std;`` ` `typedef` `pair<``int``, ``int``> pi;`` ` `// Driver program to test methods of graph class``int` `main()``{``    ``// By default a min heap is created ordered``    ``// by first element of pair.``    ``priority_queue, greater > pq;`` ` `    ``pq.push(make_pair(10, 200));``    ``pq.push(make_pair(20, 100));``    ``pq.push(make_pair(15, 400));`` ` `    ``pair<``int``, ``int``> top = pq.top();``    ``cout << top.first << ``" "` `<< top.second;``    ``return` `0;``}`

Output :

`10 200`

My Personal Notes arrow_drop_up