close

 

 

上回說過,結束專案後,要開始從基礎工練起,

本來以為看書的速度會挺快的,很多東西重新打一次肯定比當初快多了,

誰知道,看書的速度快了,但是整體下來,竟然比以前學習速度慢上許多,

但好處也很明顯的出來了,那就是邊看的時候,邊想下一個專案的架構,

然後邊想邊畫圖,然後=_____=|||  這一來一往的進度,真的讓我汗顏。

 

 

 

這一次要講的東西是priority queue,

這玩意,說真的以前看過念過,但是在操作上,真的一次都沒有融入我的code過,

原因很簡單,priority queue,顧名思義就是所謂的優先級的Queue,這部分的解釋,我們先來參考Wiki

 

Priority queue

From Wikipedia, the free encyclopedia
 
 


In computer science, a priority queue is an abstract data type which is like a regular queue or stack data structure, but where additionally each element has a "priority" associated with it. In a priority queue, an element with high priority is served before an element with low priority. If two elements have the same priority, they are served according to their order in the queue.

While priority queues are often implemented with heaps, they are conceptually distinct from heaps. A priority queue is an abstract concept like "a list" or "a map"; just as a list can be implemented with a linked list or an array, a priority queue can be implemented with a heap or a variety of other methods such as an unordered array.

( Wiki : https://en.wikipedia.org/wiki/Priority_queue )

 

 

 

 

 

組成priority_queue的資料結構

宣告語法

說明

vector

priority_queue<int>

int可以取代為任何資料型別,也可以自訂資料型別。

deque

priority_queue<int, deque<int> >

 

priority_queue預設是最大的優先取出,若要改成最小的優先取出,需要在宣告時就告知是最小的優先取出,使用函式物件(function object)的「greater<int>」,第一個值是否大於第二個值,宣告成「priority_queue< int,vector<int>,greater<int> >」,就會變成由小到大排序,注意最後兩個大於中間要插入一個空白鍵,與輸入時所使用的「>>」能夠區分開來,所使用資料型別int,可以宣告為其他資料型別,但資料型別前後要一致。

排序方式

宣告語法

說明

最大的優先取出

priority_queue<int>

int可以取代為任何資料型別,也可以自訂資料型別。

priority_queue<int,vector<int>,less<int> >

最小的優先取出

priority_queue<int,vector<int>,greater<int> >

priority_queue所提供的重要函式

函式分類

函式

功能

新增或刪除元素函式

push(x)

插入元素xpriority_queue

pop()

priority_queue最上面取出元素,並從priority_queue刪除此元素。

讀取函式

top()

讀取priority_queue最上面元素,但不刪除此元素。

儲存空間函式

empty()

檢查priority_queue是否是空的,若是空的,回傳true,否則回傳false

size()

回傳priority_queue目前儲存元素的個數

 

Sample :
 

 

 

 

 

 

arrow
arrow
    文章標籤
    data structure
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()