關聯容器關聯容器將值與鍵關聯在一起,並使用鍵來查詢值。關聯容器的優點在於,它提供了對元素的快速訪問。
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 的元素以鍵 ...