優先佇列priority queue使用方法

2021-09-12 02:28:14 字數 973 閱讀 1331

#include

empty()

;//判斷是否為空

push

(elem e)

;//佇列尾部增加一元素

pop();

//佇列頭部資料出隊

top();

//返回頭部資料

size()

;//返回棧中元素個數

故此,容器vector和deque可以作為底層容器,在建立優先佇列時若沒有宣告使用何種容器,則預設使用vector。

方法1:

priority_queue<

int> qi;

// 隊頭最大,容器vector

方法2:
priority_queue<

int, vector<

int>

, greater<

int>> qi2;

greater標頭檔案

#include

// std::greater

1.如果是自定義型別,可在類中友元過載運算子:
struct node

friend operator<

( node a, node b )

};

2. 或在類外過載運算子:
struct node};

bool operator<

( node a, node b )

priority_queue q;

3. 也可以自定義比較函式:
struct node};

struct cmp};

priority_queue

, cmp> q;

STL容器 優先佇列priority queue

priority queue顧名思義,是乙個具有權值概念的queue,它和queue一樣允許加入新元素 移除舊元素等功能。由於這是乙個queue,所以只允許在底部加入元素,從頂部取出元素。但優先佇列帶有權值概念,其內的元素自動按照元素的權值排序。權值最高者排在最前面。stl的priority que...

STL初步 優先佇列Priority queue

這個優先到底是如何優先?和普通佇列區別在哪?priority queue type,container,functional priority queue,less q priority queue,less a q priority queue,less b 優先佇列中沒有迭代器 也沒有clear...

優先順序佇列用法詳解(priority queue)

由於優先順序佇列的內部資料結構為堆,所以這裡先介紹堆的一些操作。堆的一些函式操作在algorithm標頭檔案中 在 first,last 範圍內 構造最大堆,first,last 可以是vector指標也可以是陣列指標 make heap first last make heap first las...