STL關聯容器之map

2021-08-01 00:21:39 字數 642 閱讀 9559

map和set一樣,也是一種關聯容器,內部也是使用紅黑樹作為底層的實現結構。但是不同的是,map的鍵值和實值可以是不一樣的。

map與set的查詢操作本質上是一樣的,沒有特殊的地方。

map使用鍵值排列元素的位置,因而也不允許插入相同鍵值的元素,插入演算法返回pair(iterator,bool),分別指明插入的節點和插入結果。

map與set的刪除操作也是一樣的,都是使用紅黑樹的演算法。

不同於set,map的實值與鍵值是分離的,因而修改實值的操作是允許的,但是鍵值是不允許修改的。

下面對map的基本用法進行簡單的測試,**如下:

map

a;a[1] = "a";

a[5] = "b";

a[7] = "c";

pair value(3,"d");

a.insert(value);

for (map

::iterator iter = a.begin();iter !=a.end();++iter)

map::iterator iter = a.find(8);

if (iter == a.end())

map與set只是滿足不同的需求,但是實現原理是一致的,因而效能方面也是一致的。

STL之關聯容器

1.set單重集合 不允許key重複 set作為乙個容器,也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出資料 c stl中標準關聯容器set,multiset,map,multimap內部採用的就是一種非常高效的平衡檢索二叉樹 紅黑樹 include using namespace ...

STL之關聯容器

關聯容器包含map set multimap multiset。關聯容器的特點是明顯的,相對於順序容器,有如下特點 1 其內部是採用非線性的二叉樹結構,具體的說是紅黑樹的結構原理實現的。2 set和map保證了元素的唯一性,multiset和multimap擴充套件了這一屬性,可以允許元素不唯一。3...

C primer 關聯容器之map

先來一道程式看看吧。程式如下如題目要求是定義乙個map,將單詞與乙個行號的list關聯,list中儲存單詞出現的行號 現在繼續 定義乙個map,將單詞與乙個行號的list關聯,list中儲存單詞出現的行號 其中本來答案中需要in檔案流繫結,我卻用了兩個cin來控制檔案輸入單詞以及行號控制。在這裡需要...