【C++集合】STL中的map
STL中的map以一种效率较高的形式(红黑树)实现了映射。(C++11又提供了一种更为先进的unordered_map,基于哈希表,拥有 O(1) 的时间复杂度,两种容器操作相同)
map的创建
map<A, B> mp;
unordered_map<A, B> mp;
即可创建一个键类型为A,值类型为B的map。
map的插入与修改
mp.insert(make_pair(a,b));
即可插入一个对象(要求a的类型为A,b的类型为B)。
此外,map还提供一种简易的插入与修改方法
mp[a]=b;
此时,如果mp中a已存在,则会将键为a的项的值设为b;否则,则会插入一个键为a,值为b的新项。
map的查询
mp[a];//查询键为a的项的值
map的删除
mp.erase(mp.find(aa));//将键为a的项删去
查看map的大小
mp.size();
查看map中特定项的个数
mp.count(a);
这个count是查看mp中键为a的项的个数(因为只能有一个或没有,这个函数的返回值只能为1或0)。
清空集合
mp.clear();//删除map中全部元素
Map集合主要用来存放有映射关系的多组数据,可以做到一一对应,具备“映射”关系。