priority queue

priority_queue預設使用vector轉換成priority_queue,也可以使用deque轉換成priority_queue,priority_queue將vector與deque轉換成heap結構,將最高優先權(最大或最小)的元素優先取出佇列,但不能使用deque轉換成priority_queue。

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

priority_queue所提供的重要函式

在priority_queue中新增與讀取元素

範例說明

請實作一個程式將4、8、3、5與2依序加入priority_queue中,使用迴圈依序取出priority_queue中所有元素到螢幕。

範例程式如下