Skip to content

Latest commit

 

History

History
36 lines (32 loc) · 837 Bytes

File metadata and controls

36 lines (32 loc) · 837 Bytes

####Comparator for priority_queue

  1. int
std::priority_queue<int,std::vector<int>,std::less<int>> pq; //max-heap (top is max)
std::priority_queue<int,std::vector<int>,std::greater<int>> pq; //min-heap
  1. Object (class comparator)
struct Comparator{ // or class
    bool operator()(const T& t1, const T& t2) {
        return t1.val<t2.val;
    }
}; // max-heap
priority_queue<T,vector<T>,Comparator> pq;
  1. Object (lambda exp comparator)
auto compare = [](T t1,T t2) {
    return t1-t2;
};
priority_queue<T,vector<T>,decltype(compare)> pq(compare);

Sort Object

// lambda expression
sort(T.begin(),T.end(),[](const auto& t1, const auto& t2){
            return t1.val<t2.val;
        });

sort(T.begin(),T.end(),[](const T& t1, const T& t2){
            return t1.val<t2.val;
        });