priority_queue()(優先佇列的使用、過載)
阿新 • • 發佈:2018-11-19
關於為什麼友元函式過載時不能使用">"以及向優先佇列中插入指標元素的問題:
優先順序佇列幾個應用詳解(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 b<a;//從大到小排列 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; }