map
2022/9/4 23:25:24
本文主要是介绍map,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mp.count(x) | 判断x为下标的元素是不是在mp中,是就返回1,不是就返回0 |
mp.erase(x) | 删除mp中x为下标的元素 |
mp.size() | 返回mp中元素的个数 |
mp.clear() | 清空mp |
【深基17.例6】学籍管理
题目描述
您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 $10^5$ 条):
- 插入与修改,格式
1 NAME SCORE
:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 $\texttt{SCORE}$($0<\texttt{SCORE}<2^{31}$) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
。 - 查询,格式
2 NAME
:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found
,否则输出该生成绩。 - 删除,格式
3 NAME
:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found
,否则输出Deleted successfully
。 - 汇总,格式
4
:输出系统中学生数量。
输入格式
输出格式
样例 #1
样例输入 #1
5 1 lxl 10 2 lxl 3 lxl 2 lxl 4
样例输出 #1
OK 10 Deleted successfully Not found 0
代码
#include<bits/stdc++.h> using namespace std; int n, num, score; string name; map<string, int> mp; int main(){ cin >> n; for(int i = 1; i <= n; i++){ cin >> num; if(num == 1){ cin >> name >> score; mp[name] = score; cout << "OK" << endl; }else if(num == 2){ cin >> name; if(!mp.count(name))cout << "Not found" << endl; else cout << mp[name] << endl; }else if(num == 3){ cin >> name; if(!mp.count(name))cout << "Not found" << endl; else{ mp.erase(name); cout << "Deleted successfully" << endl; } }else if(num == 4){ cout << mp.size() << endl; } } return 0; }
这篇关于map的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行
- 2024-05-08阿里云域名注册流程,分享给第一次购买域名的新手站长!