vector與陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。便於隨機訪問,時間複雜度為o(1),但因為記憶體空間是連續的,所以在進入插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o(n)。
此外,當陣列記憶體空間不足,會採取擴容,通過重新申請一塊更大的記憶體空間進行記憶體拷貝。
支援 」+「、」+=「,」<"等操作
list底層是由雙向鍊錶實現的,因此記憶體空間不是連續的。根據鍊錶的實現原理,list查詢效率較低,時間複雜度為o(n),但插入和刪除效率較高。只需要在插入的地方更改指標的指向即可,不用移動資料。
不支援 」+「、」+=「,」<"等操作
3、std::forward_list
單向鍊錶,沒有反向迭代器,無法獲取最後那個元素
4、queue
fifo的佇列,執行緒池呼叫的佇列常用這個。
back()返回乙個引用,指向佇列的最後乙個元素。empty()函式返回真(
true)如果隊列為空,否則返回假(false)。
front()返回佇列第乙個元素的引用。
pop()函式刪除佇列的乙個元素
push() 在末尾加入乙個元素
size() 返回佇列中元素的個數
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
STL常用資料結構總結
資料結構機考的你,想不想偷懶?快來看一看c 的stl吧。stl standard template library 標準模板庫提供了一些列資料結構和演算法,幫你更高效地解決問題。下面列出一些常用的 stl的一小部分 資料結構和演算法介面,標準採用sgi stl,參考自the annotated st...