STL 幾種容器的比較優缺點

2021-08-21 07:31:43 字數 709 閱讀 3564

\

setmap

共同點都是無序的儲存元素,只是通過它提供的藉口對裡面的元素進行訪問,底層都是採用紅黑樹實現

不同點集合,用來判斷某乙個元素是不是在乙個組裡面,使用的比較少

對映,相當於字典,把乙個值對映成另乙個值,可以建立字典

a. 優點

b. 缺點

是動態陣列,在堆中分配記憶體,元素連續存放,有保留記憶體,如果減少大小後,記憶體也不會釋放;如果新值大於當前大小時才會重新分配記憶體。

\

deque

vector

組織方式

按頁或塊來分配儲存器的,每頁包含固定數目的元素

分配一段連續的記憶體來儲存內容

效率即使在容器的前端也可以提供常數時間的insert和erase操作,而且在體積增長方面也比vector更具有效率

只是在序列的尾端插入元素時才有效率,但是隨機訪問速度要比deque快 \

vector

istdeque

特點快速的隨機訪問,快速的在最後插入刪除元素

可以快速的在任意位置新增刪除元素,只能快速的訪問最開始和最後面的元素

在開始和最後新增刪除元素一樣快,並且提供了隨機訪問的方法

適用需要高效的隨機訪問,不在於插入刪除的效率

需要大量的插入和刪除操作,不關心隨機訪問

需要隨機訪問,也需要高效的在兩端進行插入刪除操作

STL中幾種常用容器比較

list支援快速的插入和刪除,但是查詢費時 vector支援快速的查詢,但是插入費時。map查詢的時間複雜度是對數的,這幾乎是最快的,hash也是對數的。如果我自己寫,我也會用二叉檢索樹,它在大部分情況下可以保證對數複雜度,最壞情況是常數複雜度,而std map在任何情況下都可以保證對數複雜度,原因...

幾種資料庫連線方式優缺點比較

幾種資料庫連線方式優缺點比較 訪問介面 易用性執行能力 可擴充套件性 技術層次 突出特點 odbc差較高 差底層可進行底層控制 mfc odbc好一般 高層同用標準,應用廣泛 mfc dao好較高 一般高層 訪問jet效能最好 ole db很難高 好底層可訪問非關係型資料庫 ado最好高好 底層可訪...

STL容器的效率比較

順序儲存容器 string vector list deque 關聯儲存容器 map底層採用的是樹型結構,多數使用平衡二叉樹實現,查詢某一值是常數時間,遍歷起來效果也不錯,只是每次插入值的時候,會重新構成底層的平衡二叉樹,效率有一定影響.set 和map都是無序的儲存元素,只能通過它提供的介面對裡面...