定義:priority_queue
需要包含標頭檔案
作用:可以自定義其中資料的優先順序, 讓優先順序高的排在佇列前面,優先出隊。
和佇列基本操作相同:當需要用自定義的資料型別時才需要傳入這三個引數,使用基本資料型別時,只需要傳入資料型別,預設是大頂堆。
`//公升序佇列,小頂堆
priority_queue <
int,vector<
int>
,greater<
int>
> q;
//降序佇列,大頂堆
priority_queue <
int,vector<
int>
,less<
int>
>q;
//greater和less是std實現的兩個仿函式(就是使乙個類的使用看上去像乙個函式。其實現就是類中實現乙個operator(),這個類就有了類似函式的行為,就是乙個仿函式類了)
自定義型別的例子
#include
#include
using
namespace std;
//方法1
struct tmp1 //運算子過載<
bool
operator
<
(const tmp1& a)
const};
//方法2
struct tmp2 //重寫仿函式};
intmain()
cout << endl;
priority_queue
, tmp2> f;
f.push
(b);
f.push
(c);
f.push
(a);
while
(!f.
empty()
)}
題目
題目描述
自然界有一種物質,同種兩個物質結合需要消耗的能量為兩個物質的質量和。假設只能兩兩結合,根據輸入的該類物質碎片質量,求全部碎片結合成乙個整體,需要的最小能量。
input format
碎片總個數0#include
#include
using
namespace std;
intmain()
for(
int i =
0; i < n -
1; i++
) cout << sum << endl;
return0;
}參考來自:
優先佇列的用法
在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 int qi 通過 操作符可知在整數中元素大的優先順序高。故示例1中輸出結果為 9 6 5 3 2 第二種方法 在示例1中,如果我們要把元素從小到大輸出怎麼辦...
優先佇列用法
在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 priority queueqi 通過 操作符可知在整數中元素大的優先順序高。故示例1中輸出結果為 9 6 5 3 2 第二種方法 在示例1中,如果我們要把元...
優先佇列用法
第一種方法 在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 priority queue qi 通過 操作符可知在整數中元素大的優先順序高。故示例1中輸出結果為 96 532第二種方法 在示例1中,如果我們...