總結下三種stl佇列的api區別

2021-10-13 12:27:46 字數 660 閱讀 6402

queue普通佇列 deque改為單開口實現

priority_queue優先佇列 vector + heap實現

deque雙端佇列 實現比較複雜,排序很慢,適合插入等操作。

queue和pq的api

查空empty()

插入push() 或者emplace()

出隊pop()

隊頭元素top()

queue和pq都可以訪問front,但是pq不能訪問back而queue可以

deque api

//a) 建構函式

deque ideq

//b)增加函式

ideq.push_front( x):雙端佇列頭部增加乙個元素x

ideq.push_back(x):雙端佇列尾部增加乙個元素x

//c)刪除函式

ideq.pop_front():刪除雙端佇列中最前乙個元素

ideq.pop_back():刪除雙端佇列中最後乙個元素

ideq.clear():清空雙端佇列中元素

//d)判斷函式

ideq.empty() :向量是否為空,若true,則向量中無元素

//e)大小函式

ideq.size():返回向量中元素的個數

三種常用的STL

1 vector容器 vector容器是乙個動態陣列的結構,在記憶體中有乙個指標指向一塊連續的記憶體。類似陣列結構一樣。它的特點支援隨機訪問資料,因為其在記憶體中的單元是連續。如此之外,還可以vector的大小是可以自動增長的。當向乙個vector中繼續存放資料的時候,如果當前的記憶體大小不夠,核心...

Python佇列的三種佇列實現方法

今天講一下佇列,用到乙個python自帶的庫,queue 佇列的三種實現方法有 1 fifo先入先出佇列 queue 2 lifo 先出佇列 lifoqueue 3 優先順序佇列 priorityqueue 先講一下queue中的幾個方法 三種 fifo lifo priority 建立先入先出的佇...

三種最短路的總結

三種最短路演算法的對比 floyd dijkstra bellman ford 空間複雜度 o n 2 0 m 0 m 時間嗎複雜度 o n3 o m n logn o mn 適用情況 稠密圖稠密圖 稀疏圖負權邊 不可以不可以 可以floyd演算法簡單,dijkstra不能解決負權邊優化後可以得到m...