關聯式容器 set,map的使用與辨別。

2021-09-20 03:29:20 字數 1986 閱讀 3044

int array[9]

=;set<

int>

s(array,array+

sizeof

(array)

/array

(int))

;//用陣列對set進行初始化。

for(

auto it = s.

begin()

;it != s.

end(

);it++

) cout <<

*it <<

" ";

cout << endl;

for(

auto

&e : s)

cout << endl;

std :

: set<

int>

:: iterator it = s.

begin()

;while

(it != s.

end())

cout << endl;

set<

int> s1;

s1.insert(6

);s1.insert(1

);s1.insert(4

);s1.insert(3

);s1.insert(9

);s1.insert(1

);s1.insert(2

);s1.insert(1

);for(

auto

&e : s1)

cout << endl;

s1.erase(1

);for(

auto

&e : s1)

cout << endl;

int ret = s1.

find(9

);if(ret != s1.

end())

s1.erase

(ret)

;for

(auto

&e : s1)

cout << endl;

map m1,}

;

map m;

m.insert

(pair

("a"

,"小花"))

; m.

insert

(make_pair

("b"

,"小亮"))

; m[

"e"]

="小藍"

;

利用map統計次數

int  str=

; map<

int,

int> countmap;

for(

const

auto

&e : str)

cout << countmap[5]

<< endl;

setmultiset

mapmultimap

元素的儲存

是否去重是否

是否是否有序

有序有序

有序有序

排序標準

弱排序弱排序

key小於

key小於

是否允許修改否否

否否底層原理

紅黑樹紅黑樹

紅黑樹紅黑樹

是否支援operator否否

是否元素查詢效率

時間複雜度o(logn)

時間複雜度o(logn)

時間複雜度o(logn)

時間複雜度o(logn)

所以,multiset可用來對元素進行排序;

map支援下標訪問符,在[ ]中放入key值,會找到相應的value值;

map的內部是根據key值進行比較的;

map中的key是唯一的,multimap中的key是可以重複的。

關聯容器set map的使用

關聯容器是stl容器的另一組成部分,關聯容器的底層是紅黑樹,容器會根據值進行自動調整排序。map與set的底層資料結構決定了他們不會有重複的元素,set.count 函式返回的結果只能整數 0 或 1,1表示有這個元素,0表示沒有這個元素 與其功能相似的還有函式find find 函式返回值是乙個迭...

關聯容器 set map

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

STL之關聯式容器set map

1.管理元素集合的stl容器大致分為兩類,序列式容器 有順序的集合 和關聯式容器 經過排序的集合 2.關聯式容器再管理資料的過程中會自動給元素排序。其優點在於可以隨時採用二分搜尋法,搜尋元素的效率極高。1.set是根據元素值進行排序的集合,所插入的元素在集合中唯一,不存在重複元素。1.include...