一道模拟题,顺带学习一下map的一些用法
- 插入:使用insert或emplace,也可以直接用中括号模拟数组赋值
- 查找:使用find或count,find返回一个迭代器,没找到指向map.end(),找到则指向对应元素,count返回1或0。我们可以使用中括号来获取一个键对应的值,但是如果键不存在,则会创建一个默认的而不是失败,所以这样访问前要检查是否存在
- 删除:使用erase,传入要删除元素对应的键
这道题就是一道正常的模拟题,看以上内容就行
AC代码
#include <iostream>
#include <map>
#include <string>
using namespace std;
map<string, int> mp;
int main () {int n; cin>>n;while(n--) {int op; cin>>op;if(op == 1) {string name; int so;cin>>name>>so;mp[name] = so;cout<<"OK\n";}else if(op == 2) {string name; cin>>name;auto it = mp.find(name);if(it == mp.end()) cout<<"Not found\n";else cout<<mp[name]<<"\n";}else if(op == 3) {string name; cin>>name;if(mp.find(name) == mp.end()) cout<<"Not found\n";else {mp.erase(name); cout<<"Deleted successfully\n";}}else if(op == 4) {cout<<mp.size()<<endl;}}return 0;
}