優先佇列的用法(priority queue)

2021-10-25 10:30:07 字數 1342 閱讀 1228

定義: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中,如果我們...