map映射,声明map<type1,type2>a(名字),使用时包含头文件#include<map>
根据a.first得出a.second,例如map<int,string>mp,mp[1]="happy";
使用:
mp.erase(key) | 根据映射的键删除键和值 O(logN) |
mp.erase(first,last) | 删除左闭右开区间迭代器(地址)对应的键和值 O(last-first) |
mp.begin() | 返回指向map第一个元素的迭代器(地址) |
mp.end() | 返回指向map尾部的迭代器(最后一个元素的下一个地址) |
mp.count(key) | 查看元素是否存在,因为map中键是唯一的,所以存在返回1,不存在返回0 |
mp.find(key) | 返回键为key的映射的迭代器 O(logN) 注意:用find函数来定位数据出现位置,它返回一个迭代器。当数据存在时,返回数据所在位置的迭代器,数据不存在时,返回mp.end() |
mp.insert() | 插入元素,插入时要构造键值对 |
mp.begin() | 返回指向map第一个元素的迭代器(地址) |
添加元素:
例如map<string,string>mp
mp.insert(make_pair("vegetable","蔬菜"));
mp.insert(pair<string,string>("fruit","水果"));
mp.insert({"hahaha","wawawa"});
(第三种注意大括号)
遍历:
map<int,string>mp;
for(auto it:mp) //
{
cout<<it.first<<' '<<it.second<<'\n\;
}
map<int,string>mp;
for(map<int,string>iterator::it;i!=mp.end();it++)//(迭代器)
{
cout<<it->first<<' '<<it->second<<'\n\;
}