STL模板整理 priority queue

2022-05-26 12:00:13 字數 1071 閱讀 9624

優先佇列是佇列的一種,不過它可以按照自定義的一種方式(資料的優先順序)來對佇列中的資料進行動態的排序,每次的push和pop操作,佇列都會動態的調整,以達到我們預期的方式來儲存。

定義:

priority_queue p;//

最大值優先,是大頂堆一種簡寫方式

priority_queue,greater>q1;//

最小值優先,小頂堆

priority_queue,less >q2;//

最大值優先,大頂堆

在使用時,我們會有很多時間用到根據結構體的某乙個元素進行排序,下面給出定義結構體的優先順序比較方式

struct

node

} stu;

//定義結構體變數

這樣直接可以:

priority_queue

q;

操作**:

#include #include 

using

namespace

std;

/*priority_queuep;//最大值優先,是大頂堆一種簡寫方式

priority_queue,greater>q1;//最小值優先,小頂堆

priority_queue,less>q2;//最大值優先,大頂堆

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

pop( ) //刪除隊頂元素

push( ) //加入乙個元素

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

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

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

*//*

struct node stu;

struct cmp }*/

struct

node

} stu;

intmain() ;

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

p.push(a[i]);

while(!p.empty())

return0;

}

STL模板整理 list

list容器是一種序列式容器,它是stl實現的雙向鍊錶,與vector相比它可以實現快速的插入和刪除,但是不能夠快速的隨機訪問。include list 宣告乙個空列表 list n 宣告乙個有n個元素的列表,每個元素都是由其預設建構函式t 構造出來的 list n,val 宣告乙個由n個元素的列表...

STL模板整理 set

set作為乙個容器也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出資料,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序。應該注意的是set中數元素的值不能直接被改變。1.begin 返回指向第乙個元素的迭代器 2.clear 清除所有元素 3.count 返回某個值元...

STL模板整理 vector

1 c 標準模板庫與c 標準庫的關係 c 標準模板庫其實屬於c 標準庫的一部分,c 標準模板庫主要是定義了標準模板的定義與宣告,而這些模板主要都是 類模板,我們可以呼叫這些模板來定義乙個具體的類 與之前的自己手動建立乙個函式模版或者是類模板不一樣,我們使用了 stl就不用自己來建立模板了,這些模板都...