priority queue優先佇列的使用

2021-09-10 06:22:40 字數 691 閱讀 7848

標頭檔案

優先佇列容器與佇列一樣,只能從隊尾插入元素,從隊首刪除元素。但是它有乙個特性,就是佇列中最大的元素總是位於隊首,所以出隊時,並非按照先進先出的原則進行,而是將當前佇列中最大的元素出隊(即預設大根堆)。這點類似於給佇列裡的元素進行了由大到小的順序排序。元素的比較規則預設按元素值由大到小排序,可以過載「<」操作符來重新定義比較規則。

優先順序佇列可以用向量(vector)或雙向佇列(deque)來實現(注意list container不能用來實現queue,因為list的迭代器不是任意訪問iterator,而pop中用到堆排序時是要求randomaccess iterator 的!):

priority_queue, less> pq1;// 使用遞增less函式物件排序,大根堆

priority_queue, greater> pq2;// 使用遞減greater函式物件排序,小根堆

其成員函式有「判空(empty)」 、「尺寸(size)」 、「棧頂元素(top)」 、「壓棧(push)」 、「彈棧(pop)」等。

empty()

如果優先隊列為空,則返回真

pop()

刪除第乙個元素

push()

加入乙個元素

size()

返回優先佇列中擁有的元素的個數

top()

返回優先佇列中有最高優先順序的元素

priority queue 優先佇列)

佇列 先輸入先輸出 優先佇列使用方法 標頭檔案 include using namespace std 宣告方法 1.普通方法 priority queueq 下劃線不可漏,預設從大到小輸出隊 2.結構體宣告方式 struct node int x,y frinend bool operator n...

優先佇列 priority queue

優先佇列 是一種抽象資料型別,行為有些像佇列,但是他不是先進先出型佇列 先出優先佇列的元素是佇列中優先順序最高的元素。就像 急診病人插隊 優先佇列的標頭檔案也是 用 priority queuepq 來宣告。這個pq是乙個越小的整數優先順序越低的優先佇列。出隊元素不是先進隊的元素,出隊的方法由que...

優先佇列 PriorityQueue

import queue q queue.priorityqueue q.put 1 新增元素 q.get 刪除元素 python的優先佇列基於最小堆實現。heap 堆 是乙個除了底層節點外的完全填滿的二叉樹,底層可以不完全,左到右填充節點。而最小堆意味著,任一非終端節點的資料值均不大於其左子節點和...