使用更大和向量声明优先级队列

Har*_*ava -1 c++ stl priority-queue

谁能解释一下这个声明的含义:

typedef pair<long long, int> PII;
priority_queue<PII, vector<PII>, greater<PII> > Q;
Run Code Online (Sandbox Code Playgroud)

是否将其视为一对long longint或其他的优先级队列?请有人也解释一下greater<PII>这里是什么?

sjr*_*son 5

这声明了一个std::priority_queue包含std::pair<long long, int>实例,其中 astd::vector<std::pair<long long, int>>是优先级队列的底层容器(因为它是容器适配器)。

用作std::greater<std::pair<long long, int>>队列的Comparator函数对象,检查LHS对是否大于RHS对。请参阅下面的参考:

http://en.cppreference.com/w/cpp/utility/function/greater