priority_queue存放pair,根据pair的first和second排序方法

比如,按照second来排序,first无所谓。second大的放在最前面:

struct cmp{
        template<typename T, typename U>
        bool operator()(T const& left, U const &right) {
            if (left.second < right.second) return true;
            return false;
        }
    };
...
int main(){
    unordered_map<int, int> mp;
    mp[3]=4;
    mp[2]=44;
    mp[12]=432;
    priority_queueint, int>, vectorint, int>>, cmp>  pq(mp.begin(), mp.end());//完成pq的初始化
}

你可能感兴趣的:(priority_queue存放pair,根据pair的first和second排序方法)