0
已解决
李显晨
中级启示者
中级启示者
map(映射)
映射:有两个集合key 和 value
一个key值只对应一个value值
一个value可能对应不同的key值
例:
key:学生姓名
value:学生成绩
一个姓名只对应一个成绩(由姓名可以确定唯一的成绩)
一个成绩可能对应多个姓名
map的用法:
1.头文件<map>
2.定义映射
map<key_type,value_type> m;
例:map<string,int> stu;
3.如何表示key对应value
m[key]=value;
例:stu["xiaoming"]=95;
4.迭代器
是的,你没有看错map的遍历更链表一样需要迭代器
map<key_type,value_type>::iterator it;
for(it=m.begin();it!=m.end();it++){
cout<<it->first<<" "<<it->second<<endl;
//it->first:key值 it->second:value值
}
5.映射清空
m.clear();
m.erase(m.begin(),m.end());
最后来说一说map的好处
可以统计字符串出现的次数(高级桶)
map<string,int> m;
for(1~n){
输入一个字符串a;
m[a]++;//a对应的value++
}