1. 程式人生 > >優先佇列(priority queue)常用的用法

優先佇列(priority queue)常用的用法

優先佇列(priority queue)

  優先順序佇列 是不同於先進先出佇列的另一種佇列。每次從佇列中取出的是具有最高優先權的元素。

       首先它是一個佇列,但是它強調了“優先”二字,所以,已經不能算是一般意義上的隊列了,它的“優先”意指取隊首元素時,有一定的選擇性,即根據元素的屬性選擇某一項值最優的出隊~

關於priority_queue
1,關於STL中的priority_queue:確定用top()檢視頂部元素時,該元素是具有最高優先順序的一個元素. 呼叫pop()刪除之後,將促使下一個元素進入該位置. 
2,如同stack和queue,priority_queue是一個基於基本序列容器進行構建的介面卡,預設的序列器是vector。

 priority_queue<Type,Container,Compare> //compare預設是less

常用的操作如下:

empty()  如果優先佇列為空,則返回真 
pop()  刪除第一個元素 
push()  加入一個元素 
size()  返回優先佇列中擁有的元素的個數 
top()  返回優先佇列中有最高優先順序的元素 

但是在使用時必須注意:priority_queue放置元素時,不會判斷元素是否重複。(因為在模板的第二個引數時順序容器,不能保證元素的唯一性)此外可以替代預設的Compare函式