概述
结构体运算符重载和优先队列的优先级
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
struct node
{
friend bool operator< (node n1, node n2)
{
return n1.priority > n2.priority;
//"<"为从大到小排列,">"为从小到大排列
}
int priority;
int value;
};
int main()
{
const int len =5;
priority_queue<node> qn;
//必须要重载运算符
node b[len];
b[0].priority = 6; b[0].value = 1;
b[1].priority = 9; b[1].value = 5;
b[2].priority = 2; b[2].value = 3;
b[3].priority = 8; b[3].value = 2;
b[4].priority = 1; b[4].value = 4;
for(int i = 0; i < len; i++)
qn.push(b[i]);
cout<<"优先级"<<'t'<<"值"<<endl;
for(int i = 0; i < len; i++)
{
cout<<qn.top().priority<<'t'<<qn.top().value<<endl;
qn.pop();
}
return 0;
}
其中qn.push(b[i] b[i]相当于结构体变量,添加到队列里,因此qn.top().priotity队首元素是结构体变量访问其成员。队列按照priority自动进行排序(不是按照value来排序的)
node类型和int类型不一样
最后
以上就是害羞摩托为你收集整理的结构体运算符重载和优先队列的优先级的全部内容,希望文章能够帮你解决结构体运算符重载和优先队列的优先级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复