在c++ 中定義了幾種型別用來表示容器關鍵字和值的型別。
對於set,由於儲存的值就是關鍵字,所以,key_type和value_type是一樣的。set的迭代器是const的!
對於set,find呼叫返回的是乙個迭代器,如果我們所給定的關鍵字在set中的時候,迭代器就指向該關鍵字,否則,find返回尾後迭代器。
在乙個map中,元素是鍵值對,即每個元素就是乙個pair物件。值得注意的是,key_type是關鍵字型別,value_type是pair型別,
map::key_type v //int
set::key_type v3 //string
set::value_type v4 //string
關聯容器的查詢
對於有序關聯容器 map set
map: 下標或者find
set:
set和map一樣,find呼叫返回的是乙個迭代器,如果我們所給定的關鍵字在set/map中的時候,迭代器就指向該關鍵字,否則,find返回尾後迭代器。
cout<<"one is not found !"<
multimap或者multiset
呼叫find 返回的是該關鍵字指向的第乙個元素(乙個關鍵字可能對應於很多的元素值),可以遍歷這些元素值,全部列印輸出。
multimapauthors;
/*匯入資料*/
string search_item("yanghang");
auto entries = authors.count(search_item);
auto iter = authors.find(search_item);
while(entries)
STL系列 7 關聯容器特點
set,multiset,map,multimap 是一種非線性的樹結構,具體的說採用的是一種比較高效的特殊的平衡檢索二叉樹 紅黑樹結構。因為關聯容器的這四種容器類都使用同一原理,所以他們核心的演算法是一致的,但是它們在應用上又有一些差別,先描述一下它們之間的差別。set 又稱集合,實際上就是一組元...
STL 關聯容器
1 關聯容器與順序容器的本質區別 關聯容器通過鍵 key 儲存和讀取元素,而順序容器則通過元素在容器中的位置順序儲存和訪問元素。2 關聯容器的型別 map set multimap multiset 3 pair型別 pair型別的比較 p1 p1 p2 如果兩個pair物件的first和secon...
stl 關聯容器
簡介 對於關聯容器,它的每個元素都有乙個鍵 key 容器中的元素的順序並不能人為隨意決定,而是按照鍵的取值公升序排列的。也就是說,對於乙個關聯容器s,使用迭代器在 s.begin s.end 區間內遍歷,訪問到的序列總是公升序的。分類 按照容器中是否允許出現重複鍵值,關聯容器可分為單重關聯容器和多重...