#include<bits/stdc++.h>
using namespace std;
map<string,string> m;
int main()
{
int n;
cin>>n;
while(n--)
{
int a;
string name,score;
cin>>a;
if(a==1)
{
cin>>name>>score;
if(m.find(name)!=m.end()) m[name]=score; //m.find(key)找不到返回m.end();
else m.insert(pair<string,string>(name,score)); //找到返回m的迭代器(位置)
cout<<"OK"<<endl;
}
else if(a==2)
{
cin>>name;
if(m.find(name)!=m.end()) cout<<m[name]<<endl; //也可以用m.count(key)
else cout<<"Not found"<<endl; //找到返回1,否则0;
}
else if(a==3)
{
cin>>name;
if(m.find(name)!=m.end())
{
m.erase(name); //删除
cout<<"Deleted successfully"<<endl;
}
else cout<<"Not found"<<endl;
}
else if(a==4) cout<<m.size()<<endl;
}
return 0;
}
基础用法
键值对 pair<key,t> key为键,t为值
- 定义 map<string,string>m;
- 插入 m.insert(pair<string,string>(key,t));
- 访问 m[key] 可直接用key访问
- 查询 m.find(key); 返回key的位置,无返回m.end(). 或m.count(key) 有则返回1,无返回0
- 删除 m.erase(key);
- 清空 m.clear();
- 数量 m.size();
//输出
for(auto x:m)
{
cout<<x.first<<" "<<x.secord;
}
标签:Map,end,name,17,深基,score,key,find,cout
From: https://blog.csdn.net/Y2498378289/article/details/136954797