Hint regarding comparator for heap

can anyone give me a hint related to comparator for priority_queue in c++?

The template class definition of priority_queue is as follow

template <
   class Type,
   class Container=vector<Type>,
   class Compare=less<typename Container::value_type> >
class priority_queue

A user-provided compare can be supplied to change the ordering, e.g. using std::greater would cause the smallest element to appear as the top(). We also can create custom comparator for our need.

Lamda as compare parameter

void SamplePriorityQueueWithLamda()
    // using lambda to compare elements.
    auto compare = [](int lhs, int rhs)
                    return lhs < rhs;

    std::priority_queue<int, std::vector<int>, decltype(compare)> q(compare);

    for(int n : {1,8,5,6,3,4,0,9,7,2})


custom comparator

To use the custom comparator, we just need to pass it as the third parameter of priority_queue template

struct CustomCompare
    bool operator()(const int& lhs, const int& rhs)
        return lhs < rhs;

sample with custom comparator

void SamplePriorityQueueWithCustomComparator()
    priority_queue<int,vector<int>, CustomCompare > pq;



Closing this topic as your issue is resolved by the mentor. If it is still not resolved, Kindly un-mark the accepted solution or create a new topic and post this question as a reference link in the description of the new topic.