STL中各種容器效率

2022-05-13 14:52:40 字數 470 閱讀 4111

**:

2.deque(動態陣列)

deque支援隨機訪問。

在deque的首端和末端插入和刪除元素比較快,在中部插入和刪除則比較慢。

deque的記憶體重分配效能比vector好。

3.list(雙向鍊錶)

list不支援隨機訪問。

list在任何位置安插和刪除元素速度都比較快(雙向鍊錶)。

list的安插和刪除操作不會使其他元素的各個pointer,reference,iterator失效。

4.set和multiset(平衡二叉樹)

兩者不支援直接訪問元素的操作,因為是自動排序。

查詢元素速度比較快。

不能直接改變元素值,否則會打亂原本正確的順序。必須先下刪除舊元素,再插入新的元素。

5.map和multimap(平衡二叉樹)

基本同set。

根據已知的key查詢元素速度比較快,根據value則比較慢。

STL 各種容器

c stl 的實現 1.vector 底層資料結構為陣列 支援快速隨機訪問 2.list 底層資料結構為雙向鍊錶,支援快速增刪 3.deque 底層資料結構為乙個 控制器和多個緩衝區,詳細見stl原始碼剖析p146,支援首尾 中間不能 快速增刪,也支援隨機訪問 4.stack 底層一般用23實現,封...

STL容器效率比較

1 vector 變長一維陣列,連續存放的記憶體塊,有保留記憶體,堆中分配記憶體 支援操作,高效率的隨機訪問 在最後增加元素時,一般不需要分配記憶體空間,速度快 在中間或開始操作元素時要進行記憶體拷貝效率低 vector高效的原因在於配置了比其所容納的元素更多的記憶體,記憶體重新配置會花很多時間 注...

STL容器效率比較

1 vector 變長一維陣列,連續存放的記憶體塊,有保留記憶體,堆中分配記憶體 支援操作,高效率的隨機訪問 在最後增加元素時,一般不需要分配記憶體空間,速度快 在中間或開始操作元素時要進行記憶體拷貝效率低 vector高效的原因在於配置了比其所容納的元素更多的記憶體,記憶體重新配置會花很多時間 注...