關聯式容器

2021-10-03 14:48:49 字數 785 閱讀 1760

關聯式容器是用來儲存資料的,與序列式容器不同的是,其儲存的是結構的鍵值對,在資料檢索時比序列式容器效率更高。

鍵值對

用來表示具有一一對應關係的結構,該結構中一般只含兩個成員變數key和value,key代表鍵值,value表示與key對應的資訊。

比如:現在要建立乙個英漢互譯的字典,那該字典中必然有英文單詞與其對應的中文含義,而且,英文單詞與其中文含義是一一對應的關係,即通過該應該單詞,在詞典中就可以找到與其對應的中文含義。

sgi-stl中關於鍵值對的定義:

template

<

classt1,

class

t2>

struct pair

pair

(const t1& a,

const t2& b)

:first

(a),

second

(b)}

stl共實現了兩種不同結構的關聯式容器:樹型結構與雜湊結構

樹型結構的關聯式容器主要有:map、set、multimap、multiset。

這四種容器的共同點是:使用紅黑樹作為其底層結果,容器中的元素是有序的。

雜湊結構的關聯式容器主要有四種:unordered_map、unordered_set、unordered_multimap、unordered_multiset

這四種容器的共同點是:使用雜湊結構作為其底層結果,容器中的元素是無序的。

C 容器 關聯式容器

由於multimap和map相差不大,所以基本以map做練習 集合 map 是一種包含已 排序 公升序 物件的關聯 容器。map multimap會根據待定的排序準則,自動將元素排序。兩者不同在於前者不允許元素重複,而後者允許。集合元素的第乙個引數是key,第二個元素當做value,元素的順序與ke...

關聯式容器map multimap

和set相比,map同時擁有實值 value 和鍵值 key 其每乙個元素都是pair,pair的第乙個元素是鍵值,第二個元素是實值。map和multimap的區別在於,map不允許兩個元素擁有相同的鍵值,而multimap允許存在重複的鍵值。pair pair定義如下 1 23 4567 89 t...

關聯式容器 map

map的特性是,所有元素都會根據元素的鍵值自動被排序。map的所有元素的型別都是pair,而map的底層就是一顆紅黑樹。它不同set的是,它既有是鍵值 key 排序根據key排序,鍵值保持唯一性,它還具有實值 value pair既pair的first為key,second為value。我們不能修改...