VOOZH about

URL: https://www.geeksforgeeks.org/cpp/implement-min-heap-using-stl/

⇱ How to implement Min Heap using STL? - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

How to implement Min Heap using STL?

Last Updated : 23 Jul, 2025

In C++ STL, there is priority_queue that can directly be used to implement Max Heap. In order to fully understand the code, make sure you are familiar with following concepts in C++ 

See below example:


Output
30 20 10 5 1 

 
Since elements are printed in descending order, we have a max heap by default.
 
How to implement Min Heap? 
priority_queue supports a constructor that requires two extra arguments to make it min-heap. 

priority_queue <Type, vector<Type>, ComparisonType > min_heap;

`The third parameter, 'Comparison Type' can either be a function or functor (aka function object) that must have bool as return-type and must have 2 arguments.

Below is an example for integers.

Output: 

1 5 10 20 30 

Another method for making min-heap using default priority_queue:

This is frequently used in Competitive Programming. We first multiply all elements with (-1). Then we create a max heap (max heap is the default for priority queue). When we access the data and want to print it we simply multiply those elements with (-1) again.

Below is the implementation of the above idea:


Output
7 9 15 20 25 36 50 


How to make a min-heap of user-defined class? 

Let us consider below example where we build a min-heap of 2 D points ordered by X-axis.

Output: 

(1, 5)
(2, 1)
(10, 2)


 

Comment
Article Tags: