日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

用法 stl_【c++】STL里的priority_queue用法总结

發(fā)布時間:2025/3/15 c/c++ 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用法 stl_【c++】STL里的priority_queue用法总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://blog.csdn.net/xiaoquantouer/article/details/52015928


1、頭文件
#include<queue>
2、定義
priority_queue<int> p;
3、優(yōu)先輸出大數(shù)據(jù)
priority_queue<Type, Container, Functional>
Type為數(shù)據(jù)類型, Container為保存數(shù)據(jù)的容器,Functional為元素比較方式。
如果不寫后兩個參數(shù),那么容器默認用的是vector,比較方式默認用operator<,也就是優(yōu)先隊列是大頂堆,隊頭元素最大。
例如:

#include<iostream> #include<queue>using namespace std;int main(){priority_queue<int> p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}


輸出:

4、優(yōu)先輸出小數(shù)據(jù)
方法一:
priority_queue<int, vector<int>, greater<int> > p;
例如:

#include<iostream>#include<queue>using namespace std;int main(){priority_queue<int, vector<int>, greater<int> >p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}


輸出:


方法二:自定義優(yōu)先級,重載默認的 < 符號
例子:

#include<iostream>#include<queue>#include<cstdlib>using namespace std;struct Node{int x,y;Node(int a=0, int b=0):x(a), y(b) {}};struct cmp{bool operator()(Node a, Node b){if(a.x == b.x) return a.y>b.y;return a.x>b.x;}};int main(){priority_queue<Node, vector<Node>, cmp>p;for(int i=0; i<10; ++i)p.push(Node(rand(), rand()));while(!p.empty()){cout<<p.top().x<<' '<<p.top().y<<endl;p.pop();}//while//getchar();return 0; }


輸出:

總結

以上是生活随笔為你收集整理的用法 stl_【c++】STL里的priority_queue用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。