關於優先佇列 priority queue 的使用

2021-07-28 14:34:07 字數 805 閱讀 9513

#include#include#includeusing namespace std;

struct node

return n1.value < n2.value; //最大優先佇列,類似的還有最小優先佇列把小於改為大於

}};int main()

printf("\n");

//示例二:

priority_queue, greater> pq2;;//小元素優先 priority_queue< , vector<>, greater<> >

pq2.push(6);pq2.push(9);pq2.push(2);pq2.push(8);pq2.push(1);//入佇列

while(!pq2.empty())

printf("\n");

int i;

//示例三:

node b[5];

b[0].value = 6; b[0].key = 1;

b[1].value = 9; b[1].key = 2;

b[2].value = 2; b[2].key = 3;

b[3].value = 8; b[3].key = 4;

b[4].value = 1; b[4].key = 5;

priority_queueheap; //最大優先佇列

for(i = 0;i < 5;i++)

printf("最大優先佇列:\n");

while(!heap.empty())

return 0;

}

關於優先佇列

優先佇列呢,跟單調佇列很像,顧名思義就是乙個會自動排序的具有佇列特性的資料結構,使用這個資料結構是為了找到佇列中優先順序最高的元素。ps 優先佇列會收下每個輸入的元素,而單調佇列會捨棄一些不合法的元素以達到優化的目的。使用單調佇列是為了讓整個佇列中的元素保持單調。區別不是特別大,主要根據題目選擇。如...

關於STL中的優先佇列

之前在c primer這本書上沒有看到關於優先佇列的東西,最近在看a 演算法中看到 總結一下 priority queue的用法 priority queue呼叫 stl裡面的 make heap pop heap push heap 演算法實現,也算是堆的另外一種形式。先寫乙個用 stl 裡面堆演...

c 關於優先佇列的使用

關於優先佇列的使用 每次從佇列中取出的是具有最高優先權的元素 priority queueque 採用 預設優先順序構造佇列 預設從高到低排序 採用標頭檔案 functional 內定義優先順序 priority queue,greater que 從低到高排序 注意 會被認為錯誤,這是右移運算子,...