优先队列(priority_queue)的使用需要定义比较函数,否则编译器不知道如何对元素进行排序。下面是一个完整的代码示例:
#include
struct node{ int x, y; };
struct cmp{ bool operator() (const node& a, const node& b) { return a.x < b.x; } };
int main() {
priority_queue
while (!q.empty()){
cout << q.top().x << " " << q.top().y << endl;
q.pop();
}
return 0;
}
在这个示例中,定义了一个结构体node,其包含两个int类型的成员。然后定义了一个比较函数cmp,以便使用以node为元素类型的优先队列(priority_queue)。最后,在主函数中定义了一个node类型的变量a和b,并向优先队列(priority_queue)中压入了a和b。最后遍历队列并弹出元素,依次输出它们的x和y。