stl中:
MAP的節(jié)點(diǎn)是一對(duì)數(shù)據(jù).
SET的節(jié)點(diǎn)是一個(gè)數(shù)據(jù).
Map使用關(guān)鍵值Key來(lái)唯一標(biāo)識(shí)每一個(gè)成員 map可以重復(fù)。
set是集合
都屬于關(guān)聯(lián)容器
只不過(guò), map的形式 map<type1, type2> mymap;
set的形式 set<type> myset;
set(集合)——包含了經(jīng)過(guò)排序了的數(shù)據(jù),這些數(shù)據(jù)的值(value)必須是唯一的。
map(映射)——經(jīng)過(guò)排序了的二元組的集
合,map中的每個(gè)元素都是由兩個(gè)值組成,其中的key(鍵值,一個(gè)map中的鍵值必須是唯一的)是在排序或搜索時(shí)使用,它的值可以在容器中重新獲?。欢?
另一個(gè)值是該元素關(guān)聯(lián)的數(shù)值。比如,除了可以ar[43] = "overripe"這樣找到一個(gè)數(shù)據(jù),map還可以通過(guò)ar["banana"] =
"overripe"這樣的方法找到一個(gè)數(shù)據(jù)。如果你想獲得其中的元素信息,通過(guò)輸入元素的全名就可以輕松實(shí)現(xiàn)。
map是映射集合中的元素不能重復(fù),set可以進(jìn)行集合的各種操作(交并補(bǔ)等),當(dāng)然你也可以用list或vector實(shí)現(xiàn)set,但是效率會(huì)很低。set一般是用平衡樹(shù)或哈西表實(shí)現(xiàn)的。
映射是一種一一對(duì)應(yīng)的關(guān)系,哈西表也可以看作是映射的一種。映射通??捎脕?lái)實(shí)現(xiàn)字典結(jié)構(gòu)(dictionary)