優先佇列與set區別

2021-06-27 18:23:23 字數 1254 閱讀 2441

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 取...