includstacka 定義型別為xx的棧a
a.push()壓棧
a.pop()出棧
a.top()返回棧頂元素
a.size()返回棧內元素個數
a.empty()判斷棧內是否為空
include優先佇列相較普通佇列來說只是出隊順序不同queuea定義型別為xx的佇列a
a.push()入隊
a.pop()出隊
a.front()返回隊頭元素
a.back()返回隊尾元素
a.size()返回佇列內元素個數
a.empty()判斷隊內是否為空
include如果,佇列型別為簡單型別queuea定義型別為xx的佇列a
a.push()入隊
a.pop()出隊
a.top()返回隊頭元素
a.size()返回佇列內元素個數
a.empty()判斷隊內是否為空
如:int double
可以採用**預設(先大後小)**方式輸出
priority_queue ,less>a也可以採用自定義方式輸出這是預設的排序方式的定義方法
也可簡化為----->priority_queue a
如:priority_queue ,lessa
priority_queue a
priority_queue ,greater>a;如果有需要 ,佇列型別為結構體通過這種方式定義xx的簡單型別優先佇列會**非預設 (先小後大)**方式輸出
如:priority_queue ,greater>a;
如下:自定義出隊方式
#include
#include
using
namespace std;
struct ew
;bool
operator
<
(ew a, ew b)
//這裡的小於號對應--->優先佇列定義中less,less則過載<
priority_queue
, less> qu;
ew e_w[8]
;int
main()
;e_w[1]
=;e_w[2]
=;e_w[3]
=;e_w[4]
=;e_w[5]
=;cout <<
"入隊前:"
;for
(int i =
0; i <
6; i++
) cout << endl;
cout <<
"入隊後:"
;while
(!qu.
empty()
)system
("pause");
return0;
}
看結果
入隊前: (1,3) (2,5) (0,4) (7,6) (3,8) (6,2)另一種定義方式出隊順序:(6,2) (1,3) (0,4) (2,5) (7,6) (3,8)
#include
#include
using
namespace std;
struct ew
;bool
operator
>
(ew a, ew b)
//這裡的小於號對應--->優先佇列定義中greater,greater則過載》
priority_queue
, greater> qu;
ew e_w[8]
;int
main()
; e_w[1]
=; e_w[2]
=;e_w[3]
=; e_w[4]
=; e_w[5]
=;cout <<
"入隊前:"
;for
(int i =
0; i <
6; i++
) cout << endl;
cout <<
"入隊後:"
;while
(!qu.
empty()
)system
("pause");
return0;
}
看結果
入隊前:(1,3) (2,5) (0,4) (7,6) (3,8) (6,2)綜上兩種結構體優先佇列出隊方式比較出隊順序:(0,4) (1,3) (2,5) (3,8) (6,2) (7,6)
可以看出
對於結構體型別佇列來說less與greater用哪個都可以實現由大到小和由小到大兩種出隊方式
需要注意的是
less要過載<greater要過載》
c stl之佇列 棧 與優先佇列
棧 棧是先入後出,後入先出 有push 和pop 兩種操作 使用時定義是stacks top 操作是取棧頂的元素 但是不去刪除 在集合計算機的問題中的一段code 解釋 if idcache.cout x return idcache x 是如若找到集合x就返回他的id 佇列 佇列是 先如先出的 就...
C STL 棧 佇列 優先佇列
棧 後進先出 last in first out lifo 標頭檔案 stack stack stack int s 棧的基本操作 s.empty 如果棧為空返回true,否則返回false s.size 返回棧中元素的個數 s.pop 刪除棧頂元素但不返回其值 s.top 返回棧頂的元素,但不刪除...
C STl佇列 棧應用
c stl stack queue 堆疊 佇列 用函式實現了乙個 filo fifo 的資料結構。也就是說我們可以用函式直接代替佇列和棧的的操作,省時省力省腦省空間。c 棧stack的成員函式介紹 操作比較和分配堆疊 empty 堆疊為空則返回真 pop 移除棧頂元素 push 在棧頂增加元素 si...