1、優先佇列
優先佇列是不同於先進先出佇列的另外一種佇列,他每次從對列中取出的是具有最高優先順序的元素;
優先佇列有最小優先佇列和最大優先佇列。
2、c++ stl中的優先佇列
(1)最大優先佇列:
priority_queuepq;
(2)最小優先佇列
priority_queue,greater>pq;
3、注意:
(1)可以指定容器、使用自定義的結構體
(2)預設容器是vector
(3)預設的優先佇列是最大優先佇列。
4、提供介面:
empty() 如果優先隊列為空,則返回true;
top() 返回最高優先順序的元素
pop()刪除最高優先順序的元素
push()加入乙個元素
size() 返回優先佇列中的元素個數
5、優先佇列與set區別
(1)、set預設是從小到大輸出的,而priority_queue預設是從大到小。
6、**
#include#include#include#includeusing namespace std;
struct node
;bool operator< (node n1, node n2)
int main();
//示例1
priority_queueqi;
settestset;
for(i = 0; i < len; i++)
cout<<"priority_queue member:";
for(i = 0; i < len; i++)
cout<, greater>qi2;
for(i = 0; i < len; i++)
cout<<"priority_queue member:";
for(i = 0; i < len; i++)
for(i = 0; i < len; i++)
{ cout<<"priority_queue member:"<::iterator itor = sn.begin(); itor != sn.end(); ++itor)
{ cout<<"set member:"<<(*itor).priority<<'\t'<<(*itor).value<
佇列與優先佇列
是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為...
佇列與優先佇列(queue)
是一種特殊的線性表,特殊之處在於它只允許在表的前端 front 進行刪除操作,而在表的後端 rear 進行插入操作,和棧一樣,佇列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。佇列的資料元素又稱為佇列元素。在佇列中插入乙個佇列元素稱為入隊,從佇列中刪除乙個佇列元素稱為...
棧 佇列與優先佇列
123 45 include stack int s 入棧 push 出棧 pop 取棧頂top 123 45 include queue int s 入隊 push 出隊 pop 取隊首元素 front 不刪除 123 4priority queue int pq 入隊 push 出隊 pop 取...