当前位置: 首页 > news >正文

【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)

【深基17.例6】学籍管理

题目描述

您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 1 0 5 10^5 105 条):

  • 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 SCORE \texttt{SCORE} SCORE 0 < SCORE < 2 31 0<\texttt{SCORE}<2^{31} 0<SCORE<231) 的学生。如果已经有同名的学生则更新这名学生的成绩为 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

思路

使用一个 map<string, int> 类型的容器 m,用来存储学生的姓名和成绩。

在插入学生信息时,直接使用 map 的 [] 操作符将姓名和成绩插入即可。

在查询学生成绩时,使用 map 的 count 函数判断学生是否存在,如果存在则输出成绩,否则输出 Not found。

在删除学生信息时,同样使用 map 的 count 函数判断学生是否存在,如果存在则使用 map 的 erase 函数删除,否则输出 Not found。

在查询学生数量时,直接使用 map 的 size 函数获取 map 中元素数量即可。


AC代码

#include <iostream>
#include <map>
#define AUTHOR "HEX9CF"
using namespace std;int main()
{int n;map<string, int> m;cin >> n;while (n--){int op;string name;int score;cin >> op;switch (op){case 1:cin >> name >> score;m[name] = score;cout << "OK" << endl;break;case 2:cin >> name;if (m.count(name)){cout << m[name] << endl;}else{cout << "Not found" << endl;}break;case 3:cin >> name;if (m.count(name)){m.erase(name);cout << "Deleted successfully" << endl;}else{cout << "Not found" << endl;}break;case 4:cout << m.size() << endl;break;}}return 0;
}
http://www.lryc.cn/news/181269.html

相关文章:

  • 10.03
  • 链表单向链表跳跃链表
  • 博客无限滚动加载(html、css、js)实现
  • 腾讯云南京服务器性能如何?南京服务器测速IP地址
  • MySQL和Oracle中,语法的不同点以及如何在xml中书写日期比较大小
  • 谈谈Redis分布式锁
  • Redis的java客户端-RedisTemplate光速入门
  • 格点数据可视化(美国站点的日降雨数据)
  • YoloV8改进策略:LSKNet加入到YoloV8中,打造更适合小目标的YoloV8
  • 力扣-303.区域和检索-数组不可变
  • web:[极客大挑战 2019]LoveSQL
  • 数据结构—快速排序(续)
  • Snapdragon Profiler分析Android GPU
  • Cannot download sources:IDEA源码无法下载
  • 从零开始学习 Java:简单易懂的入门指南之IO字符流(三十一)
  • 监狱工具管理系统-监狱劳动工具管理系统
  • 蓄水池算法
  • 作业 day4
  • erlang练习题(四)
  • YoloV5实时推理最短的代码
  • Tensorflow、Pytorch和Ray(张量,计算图)
  • TinyWebServer学习笔记-让程序跑起来
  • _tkinter.TclError: no display name and no $DISPLAY environment variable 解决
  • 我出手了!
  • springboot的配置文件(properties和yml/yaml)
  • SLAM面试笔记(7) — Linux面试题
  • QUIC不是TCP的替代品
  • 计算机竞赛 目标检测-行人车辆检测流量计数
  • GPT系列模型解读:GPT-1
  • 王杰国庆作业day3