c++自帶優先隊列用法

c++自帶優先隊列用法(據說比手打慢)

定義:priority_queue<數據類型, 容器類型, 比較方式>  (寫在定義數組的位置) 

//升序隊列 (這裏一定要有空格,不然成了右移運算符↓)
priority_queue <int,vector<int>,greater<int> > q;

//降序隊列(這裏一定要空格,不然成了右移運算符↓)
priority_queue <int,vector<int>,less<int> >q;
priority_queue <int> q

不寫容器類型、比較方式的話默認是大根堆。

要用頭文件<queue> ,記得開命名空間。

 

至於爲什麼greater是小根堆,less是大根堆,似乎可以這樣理解:

我們手打堆的時候,是不是有個從堆頂往下移的操作?就是說如果堆頂>兒子就往下移(小根堆),所以greater就是表示那個大於號……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章