關聯容器和順序容器的差別

2021-06-23 08:47:18 字數 786 閱讀 5119

關聯容器和順序容器的本質差別在於關聯容器通過鍵(key)儲存和讀取元素,順序容器則通過元素在容器中的位置順序儲存和訪問元素。

順序容器list、vector、deque和關聯容器map、set型別分別適用的情況:

(1)list 型別適用於需要在容器中間插入和刪除元素的情況,例如以無序方式讀入一系列學生資料,並按學號順序儲存。

(2)vector型別使用與隨機訪問元素的情況,例如在序號為1....n的一系列人員當中,訪問第x個人的資訊。

(3)deque型別適用於需要在容器的尾部或首部插入和刪除元素的情況。例如,對服務視窗進行管理,先來的顧客先得到服務。

(4)map型別使用與需要鍵-值對的集合的情況。例如,字典、**簿的建立和使用。

(5)set型別使用於需要使用鍵集合的情況,例如,黑名單的建立和使用。

map和set的差別以及各自使用的情況

map和set的差別在於:map容器是鍵-值對的集合,而set只是鍵的集合;map型別適用於了解鍵與值的對應的情況,例如,字典(需要了解單詞(鍵) 與解釋(值)的對應情況),而set型別適用於只需判斷某值是否存在的情況,例如,判斷某人的名字是否在黑名單中。

set和list容器的主要差別和各自使用的情況

set容器和list容器的主要差別在於set容器中的元素不能修改,而list容器中的元素沒有這方面的顯示;set容器適用於儲存元素值不變的集合,而list容器適用於儲存發生變化的元素。

容器 順序容器 關聯容器

容器分為 順序容器 關聯容器,示意圖如下 順序容器 只儲存值,關聯容器 key value形式,關聯容器的乙個元素包含兩個部分 鍵值對 key value 有序容器 底層實現為紅黑樹,即容器內的key是有序的 無序容器 底層實現為hash table,雜湊表 區別 順序容器通過元素在容器中的位置順序...

順序容器與關聯容器的不同

想要理解關聯容器與順序容器的不同,最關鍵的是理解其基礎的資料結構,這樣就很自然的理解它所表現出來的性質。兩類容器的根本差別在於,順序容器中的元素是 順序 儲存的 鍊錶容器中的元素雖然不是在記憶體中 連續 儲存的,但仍然是按 順序 儲存的 理解順序的關鍵,是理解容器支援的操作形式以及效率。對vecto...

C 順序容器和關聯容器的刪除

乙個合格的容器 container 必須支援增刪改查,c 的順序容器和關聯容器也不例外。不同於insert和search,erase操作涉及到多種情況,尤其是和迭代器相結合的時候。本文總結常用c 常用容器的erase的正確做法。vector是stl中唯一乙個保證記憶體連續的容器,也是我們最常用的容器...