STL系列 關聯容器的操作

2021-08-27 20:47:59 字數 996 閱讀 6670

在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 區間內遍歷,訪問到的序列總是公升序的。分類 按照容器中是否允許出現重複鍵值,關聯容器可分為單重關聯容器和多重...