1. 程式人生 > 其它 >map與multimap容器的使用與區別

map與multimap容器的使用與區別

map容器

map是關聯式容器,一個map裡儲存的元素是一個鍵值對序列;叫做(key,value)鍵值對。它提供基於key快速檢索資料的能力。

容器使用:

  1. map中key值是唯一的;集合中的元素按順序排列。
    元素插入過程是按排序規則插入,所以不能指定插入位置。
  2. map底層的具體實現是採用紅黑樹變體的平衡二叉樹的資料結構。
    在插入操作、刪除和檢索操作上比vector快很多。
  3. map可以直接存取key所對應的value,支援[]操作符,如map[key]=value。
map<int, string> ms;

ms.insert(pair<int, string>(101, "張三"
)); ms.insert(pair<int, string>(102, "李四")); ms.insert(pair<int, string>(103, "王五")); ms[104] = "趙六"; //map可以直接存取key所對應的value for (map<int, string>::iterator it = ms.begin(); it != ms.end(); it++) { cout << "key:" << it->first <<
", value:" << it->second << endl; }

輸出結果:
在這裡插入圖片描述

multimap容器月map容器的區別:

  1. map支援唯一鍵值,每個鍵只能出現一次。支援[ ]操作符。
  2. multimap中相同鍵可以出現多次,不支援[ ]操作符。
multimap<int, string> student;

student.insert(pair<int, string>(101, "張三"));
student.insert(pair<int, string>(102, "李四"
)); student.insert(pair<int, string>(103, "王五")); student.insert(pair<int, string>(103, "趙六")); //key可以有多個,不支援[]操作符 for (multimap<int, string>::iterator it = student.begin(); it !=student.end(); it++) { cout << "key:" << it->first << ", value:" << it->second << endl; }

輸出結果:
在這裡插入圖片描述