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;
}