STL之關聯式容器set map

2021-10-08 23:26:50 字數 1288 閱讀 7885

1.管理元素集合的stl容器大致分為兩類,序列式容器(有順序的集合)和關聯式容器(經過排序的集合)。

2.關聯式容器再管理資料的過程中會自動給元素排序。其優點在於可以隨時採用二分搜尋法,搜尋元素的效率極高。

1.set是根據元素值進行排序的集合,所插入的元素在集合中唯一,不存在重複元素。

1.  #include用來將stl的set包含到程式中

2. sets; 乙個宣告。

3. 成員函式:

size() 返回set中的元素數

clear() 清空set

begin() 返回指向set開頭的迭代器

end() 返回指向set末尾的迭代器

insert(key) 向set中插入元素key

erase(key) 刪除含有key的元素

find(key) 搜尋與key一致的元素,並返回指向該元素的迭代器。

若沒有key一致的元素,則返回末尾end()

3.set由二叉搜尋樹實現,而且對樹進行了平衡處理,使得元素在樹中分布比較均勻,因此能保持搜尋、插入、刪除操作的複雜度在o(logn)。

1.map集合以鍵與值的組合為元素,每個元素擁有乙個鍵和乙個值,集合以鍵作為排序標準。

2.集合中各元素的鍵唯一,不存在重複。

3.map可以看作是一種能使用任意型別下標的關聯式容器。

1.  #include用來將stl的map包含到程式中

2. mapt; 乙個宣告,用於生成關聯陣列,該關聯陣列管理以string為鍵的int型元素。

3. map容器可以在"[ ]"運算子中指定鍵來訪問(讀寫)對應值,也可以通過迭代器順次訪問每一對鍵和值。

pair為stl提供的結構體模板,其第乙個元素可用first訪問,第二個元素可以用second訪問。

4. 成員函式:

size() 返回map中的元素數

clear() 清空map

begin() 返回指向map開頭的迭代器

end() 返回指向map末尾的迭代器

insert((key, val)) 向map中插入元素

erase(key) 刪除含有key的元素

find(key) 搜尋與key一致的元素,並返回指向該元素的迭代器

沒有與key一致的元素,則返回末尾end()

STL之關聯式容器

sets 沒有重疊的數字,沒有權利指定新元素的位置 set typedef std set obj obj col col.insert 3 col.insert 1 col.insert 5 col.insert 4 col.insert 1 col.insert 6 col.insert 2 f...

STL之關聯式容器

在接觸容器初,我們學習了stl中的部分容器,如 vector,list,deque 等,這些容器統一稱為序列式容器。因為其底層為線性序列的的資料結構,裡面儲存的是元素本身。關聯式容器就有所不同 關聯式容器也是用來儲存與序列式容器不同的是,裡面儲存的是結構的鍵值對,在資料檢索時比序列式容器效率更高。用...

關聯容器 set map

有序關聯容器 基於乙個序標準 預設是 進行查詢。這類容器用平衡二叉樹實現,通常是紅黑樹。無需關聯容器 基於乙個雜湊函式進行查詢。這類容器用雜湊表實現,採用溢位鍊錶策略。兩類容器都支援 map set 不帶值的map,或者說關鍵字就是值。初始化 map locations 基本操作 v c k v c...