優先佇列用法詳解

2021-08-28 17:02:43 字數 774 閱讀 2271

在優先佇列中,元素被賦予優先順序,當訪問元素時,具有最高端優先順序的元素先被訪問。即優先佇列具有最高端先出的行為特徵。

優先佇列在標頭檔案#include 中;

其宣告格式為:priority_queue ans;//宣告乙個名為ans的整形的優先佇列

基本操作有:

empty( )  //判斷乙個佇列是否為空

pop( )  //刪除隊頂元素

top( )  //返回優先佇列的隊頂元素

push( )  //加入乙個元素

size( )  //返回優先佇列中擁有的元素個數

優先佇列的時間複雜度為o(logn),n為佇列中元素的個數,其訪問都需要時間。

在預設的優先佇列中,優先順序最高的先出隊。預設的int型別的優先佇列中先出隊的為佇列中較大的數。

第一種用法(預設從大到小排序):

priority_queueq1;//預設從大到小排序,整數中元素大的優先順序高
第二種用法(從小到大排序):

priority_queue,greater>q1;
第二個引數為容器型別;

第三個引數為比較函式。

第三種用法:自定義排序規則

struct node

int priority;

int value;

};

在該結構中,value為值,priority為優先順序。

通過自定義operator《操作符來比較元素中的優先順序。

優先佇列用法

在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 priority queueqi 通過 操作符可知在整數中元素大的優先順序高。故示例1中輸出結果為 9 6 5 3 2 第二種方法 在示例1中,如果我們要把元...

優先佇列用法

第一種方法 在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 priority queue qi 通過 操作符可知在整數中元素大的優先順序高。故示例1中輸出結果為 96 532第二種方法 在示例1中,如果我們...

優先佇列用法

priority queue這個東西嘛,不求深入理解,只求能夠會自定義優先順序就可以 最普通的倆優先佇列 priority queue 大的元素在隊頭 priority queue,greater 要有空格,不然會報錯,小的元素在隊頭然後就是自定義優先順序 struct node int data ...