4535: 【例】map-find()
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:16
解决:12
题目描述

样例输入 复制
样例输出 复制
Li
1003 找到了,值为:Sun
1000 Li
1001 Wang
1002 Zhao
1003 Sun
1004 Zhou
提示
#include<bits/stdc++.h>
using namespace std;
int main(){
//1、定义一个 map,默认根据 key 升序排序
map<int,string> m;
//map<int,string,greater<int>>m;
//为map 元素赋值
m[1000]="Zhang";
m[1002]="Zhao";
m[1003]="Sun";
m[1001]="Wang";
m[1000]="Li";
//2、获取键(关键字 key)为 1000 的值
cout<<m[1000]<<endl;
//3、利用 make pair 创建 pair插入到 map中
//如果插入 pair,出现同样的key 不会有后面的 value 覆盖前面 value 的效果
pair<int,string> p(1004,"Zhou");
pair<int,string> p2(1004,"Wu");
m.insert(p);
m.insert(p2);
//4、erase
//删除key为1003的pair
//m.erase(1003);
//由于map支持双向迭代器,因此不能用迭代器+x或者迭代器-x
//m.erase(m.begin());
//遍历 map
map<int,string>::iterator it;
//5、find:获取指定元素的位置迭代器
it = m.find(1003);
if(it != m.end()){ //或者 if(m.count(1003))
cout<<"1003 找到了,值为:"<<it->second<<endl;
}else{
cout<<"1003 找不到!"<<endl;
}
for(it =m.begin();it != m.end();it++){
cout<<it->first<<" "<<it->second<<endl;
}
return 0;
}