C++:关联式容器map容器,multimap容器
之前提到的四种容器都是序列式容器,本贴将讲述关联式容器中的map容器。
map容器存储的都是pair类型的键值对元素,pair<const K,T>,K表示键,T表示数据类型,其各个元素的键必须是唯一的,会按照元素键的大小,默认升序排序。map容器的底层是红黑树
而multimap容器存储元素的键可重。
特点概括:
map:有序键不重
multimap:有序键可重
例如:
#include<iostream>
#include<map>
using namespace std;int main()
{map<int, char> mp;//multimap<int, char>mp;mp[200] = 'A';mp[300] = 'B';mp[100] = 'C';mp[200] = 'a';map<int, char>::iterator ite = mp.begin();while (ite != mp.end()){cout <<ite->first << " "<<ite->second <<endl;//ite->first = 10;键值不可改//ite->second = 'a';//时值可修改ite++;}cout << endl;pair<int, char>pa(210, 'A');mp.insert(pa);ite = mp.begin();while (ite != mp.end()){cout << ite->first << " " << ite->second << endl;ite++;}ite=mp.find(100);//通过find()函数查找键值对应的时值cout << ite->first << " " << ite->second << endl;return 0;
}