关于为什么友元函数重载时不能使用”>”以及向优先队列中插入指针元素的问题:
优先级队列几个应用详解(friend bool operator)
#include<stdio.h>
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
//struct node
//{
// int x,y,step;
// bool friend operator < (node a,node b)
// {
// return a.step>b.step;//步数少的先出队列
// //priority_queue<node> pq;
// }
//}
struct cmp
{
bool operator() (const int a,const int b)
{
//return a>b;//从小到大排列
//return a<b;//从大到小排列
return a%10>b%10;//个位数大的整数优先级反而小
}
};
int main()
{
//priority_queue<int,vector<int>,cmp> pq;
priority_queue<int,vector<int>,greater<int> > pq;//默认越小的整数优先级越大的优先队列
pq.push(21);
pq.push(22);
pq.push(38);
pq.push(45);
while(!pq.empty())
{
cout<<pq.top()<<" ";
pq.pop();
}
return 0;
}
版权声明:本文为UncleJokerly原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。