今天無意翻起以前買的stl源碼解析
線性的結構
- vector 內存在一起,所以當超過容量的時候,vector會進行一次很大的調整,這個也是影響性能的原因之一,同時在前面插入元素,也是vector性能的噩夢
- list ,相對來理解 ,就是用 指針來管理前後元素的關係,所以在插入刪除 都是o(1) 的複雜度
- deque ,比較有意思的是 ,用一個map 標記一些聯繫在一起的內存,就有很多內存塊,每個內存塊都有自己的容量,用map 來管理,這個在實現上就相對複雜一些。
- queue ,底層實現依賴於 list
- stack 也是依賴於list
- heap ,底層實現依賴於 vector,主要實現堆的操作算法。
- 優先隊列 : 底層實現依賴於 heap 。所以之前我曾猶豫 用 heap 還是 優先隊列是一件 很搞笑的事情。