關聯容器 c

2021-10-13 21:59:39 字數 2562 閱讀 8757

關聯容器關聯容器將值與鍵關聯在一起,並使用鍵來查詢值。關聯容器的優點在於,它提供了對元素的快速訪問。

1.關聯容器允許插入新元素,但不能指定元素插入的位置。

2.關聯容器使用某種樹實現的。

stl(標準模板庫)提供了四種關聯容器:set、multiset、map和multimap一、set關聯容器

set關聯容器:它是關聯集合,可反轉,可排序,且鍵是唯一的,所以不能儲存多個相同的值。

demon

#include

#include

#include

#include

#include

intmain()

; string s2[n]=;

seta(s1,s1 + n )

; set

b(s2,s2 + n )

; ostream_iterator

char

>

out(cout,

" ")

; cout <<

"set a: "

;copy

(a.begin()

, a.

end(

), out)

; cout << endl;

cout <<

"set b: "

;copy

(b.begin()

,b.end()

,out)

; cout << endl<< endl;

cout <<

"合併union of a and b :\n"

;set_union

(a.begin()

,a.end()

,b.begin()

,b.end()

,out)

;//有序合併去重

cout << endl<< endl;

cout <<

"交集intersection of a and b:\n"

;set_intersection

(a.begin()

,a.end()

,b.begin()

,b.end()

,out)

;//a,b交集

cout << endl<< endl;

cout <<

"不同difference of a and b :\n"

;set_difference

(a.begin()

,a.end()

,b.begin()

,b.end()

,out)

;//a相對於b的不同

cout << endl<< endl;

set c;

cout <<

"set c:\n"

;set_union

(a.begin()

,a.end()

,b.begin()

,b.end()

,insert_iterator

>

(c,c.

begin()

));copy

(c.begin()

,c.end()

,out)

; cout<

string s3

("grungy");

c.insert

(s3)

; cout <<

"set c after insertion:\n"

;copy

(c.begin()

,c.end()

,out)

; cout << endl<< endl;

cout <<

"showing a range:\n"

;copy

(c.lower_bound

("ghost"

),c.

upper_bound

("spook"

),out)

;//返回不小於ghost和不大於spook的元素

cout << endl;

return0;

}

執行結果:

執行結果:

c 關聯容器

1.map建構函式 mapm 普通初始化 mapm m2 複製初始化法 mapm b,e 另乙個map物件的迭代器初始化法 注意 1 鍵值型別必須定義 操作符號,資料訪問時需要呼叫。2 m aaa 下表訪問方式導致的結果是,若鍵對應的值不存在,則插入該鍵值對應的預設值。2.map插入操作 m.ins...

C 關聯容器

1.關聯容器是通過關鍵字來儲存和訪問資料的。關聯容器分為兩大類 map和set。其中,map是通過鍵值對來操作的,這裡的鍵就是關鍵字,值就是對應的資料。例如 mapm 定義了乙個空的map變數m,它的關鍵字型別是int,關鍵字對應的值的型別是int。可以將map理解成為函式,關鍵字是自變數,關鍵字對...

C 關聯容器

1 關聯容器定義 關聯容器和順序容器的本質差別在於 關聯容器通過鍵 key 儲存和讀取元素,而順序容器 則通過元素在容器中的位置順序儲存和訪問元素。關聯容器 associative containers 支援通過鍵來高效地查詢和讀取元素。兩個基本的關聯容器型別是 map set。map 的元素以鍵 ...