您的位置:首页 > 编程语言 > C语言/C++

C++-优先级队列

2016-04-02 12:45 357 查看

C++-优先级队列

之前做了一道搜索题目,涉及到优先级队列,特地练习记录一下。

#include<cstdio>
#include<iostream>
#include<queue>
using namespace std;
struct note {
int x;
int y;
int k;
friend bool operator < (note a, note b) {
return a.k < b.k;
}
};
int main() {
priority_queue<note> q;
struct note n[5];
n[0].x = 0;n[0].y = 1;n[0].k = 1;
n[1].x = 0;n[1].y = 1;n[1].k = 3;
n[2].x = 0;n[2].y = 1;n[2].k = 2;
n[3].x = 0;n[3].y = 1;n[3].k = 6;
n[4].x = 0;n[4].y = 1;n[4].k = 5;
for (int i = 0; i < 5; i++) q.push(n[i]);

while(q.size()) {
note n1 = q.top();q.pop();
printf("x = %d, y = %d, k = %d\n",n1.x, n1.y, n1.k);
}

return 0;
}


输出

x = 0, y = 1, k = 6
x = 0, y = 1, k = 5
x = 0, y = 1, k = 3
x = 0, y = 1, k = 2
x = 0, y = 1, k = 1


以下代码是表示根据k的大小,从大到小输出

friend bool operator < (note a, note b) {
return a.k < b.k;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: