题目描述

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

  • 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母和数字组成不超过 20 个字符的字符串,区分大小写) ,分数为 \texttt{SCORE}SCORE(0<\texttt{SCORE}<2^{31}0<SCORE<231) 的学生。如果已经有同名的学生则更新这名学生的成绩为 SCORE。如果成功插入或者修改则输出OK
  • 查询,格式2 NAME:在系统中查询姓名为 NAME 的学生的成绩。如果没能找到这名学生则输出Not found,否则输出该生成绩。
  • 删除,格式3 NAME:在系统中删除姓名为 NAME 的学生信息。如果没能找到这名学生则输出Not found,否则输出Deleted successfully
  • 汇总,格式4:输出系统中学生数量。

输入格式

第一行一个整数q,代表q次访问

接下来q行,每行代表一次访问​​​​​

输出格式

q行,第i行表示第i次访问结果

分析:

这是一道map的题目,只需要了解map基本操作即可。

map基本操作:

1.插入元素

// 定义一个map对象
map<int, string> map;
// 第一种 用insert函數插入pair
map.insert(pair<int, string>(000, "student_zero"));
// 第二种
map.insert(map<int, string>::value_type(001, "student_one"));
// 第三种
map[123] = "student_first";
map[456] = "student_second";

2.查找元素

// find 返回迭代器指向当前查找元素的位置否则返回map::end()位置
iter = mapStudent.find("123");
if(iter != mapStudent.end())cout<<"Find, the value is"<<iter->second<<endl;
elsecout<<"Do not Find"<<endl;

3.删除元素和清空元素

//迭代器刪除
iter = mapStudent.find("123");
mapStudent.erase(iter);//用关键字刪除
int n = mapStudent.erase("123");//用迭代器范围刪除 : 把整个map清空
mapStudent.erase(mapStudent.begin(), mapStudent.end());
//等同于mapStudent.clear()

4.map的大小

int nSize = map.size();

有了以上这些基本操作,AC代码便可轻松写出

# include <iostream>
# include <cstdio>
# include <map>
using namespace std;
int q,cnt;
map <string,long long> m;
int main(){scanf("%d",&q);for (int i=1;i<=q;i++){int ctrl;scanf("%d",&ctrl);if (ctrl==1){string n;int s;cin>>n>>s;m[n]=s;printf("OK\n");}else if (ctrl==2){string n;cin>>n;if (m.find(n)!=m.end()){printf("%d\n",m[n]);}else{printf("Not found\n");}}else if (ctrl==3){string n;cin>>n;if (m.find(n)!=m.end()){m.erase(n);printf("Deleted successfully\n");}else{printf("Not found\n");}}else if (ctrl=4){printf("%d\n",m.size());}}return 0;
}

禁忌直接抄代码,要在理解的基础上自主写出

总结:

        这题直接使用map容器便可轻松写出,难点在于对map的掌握

制作不易,点个赞吧~

洛谷 P5266 【深基17.例6】学籍管理 题解相关推荐

  1. 洛谷 P3373 【模板】线段树 2 题解

    洛谷 P3373 [模板]线段树 2 题解 题面 题目链接:[戳这里](https://www.luogu.org/problemnew/show/P3373) 题目描述 输入输出格式 输入输出样例 ...

  2. 洛谷试炼场 P1553 数字反转(升级版)题解

    洛谷试炼场 P1553 数字反转(升级版)题解 [c] 题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数. ...

  3. 洛谷P2738 [USACO4.1]篱笆回路Fence Loops 题解

    洛谷P2738 [USACO4.1]篱笆回路Fence Loops 题解 题目链接:P2738 [USACO4.1]篱笆回路Fence Loops 题意:农夫布朗的牧场上的篱笆已经失去控制了.它们分成 ...

  4. 洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S 题解

    洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S 题解 题目链接:P3131 [USACO16JAN]Subsequences Summing ...

  5. 洛谷P5266 【深基17.例6】学籍管理

    此题为洛谷官方比赛题,鄙人AK.... 你可以选择用map扫描,或者stack队列,但我认为那些太高大上了,所以写了一个struct(结构体,给新手看的 ) 话不多说,直接上AC代码,Ctrl+C去吧 ...

  6. 深入理解 操作系统 SJF算法(以洛谷P1223题为例)

    CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...

  7. 深入理解 操作系统 LRU算法(以洛谷P1540题为例)

    LRU算法 LeastRecentlyUsedLeast Recently UsedLeastRecentlyUsed 算法,意为"最近最少使用",这是操作系统内存管理部分重要的一 ...

  8. 【洛谷OJ C++】洛谷题单100 入门1顺序结构 题解及学习笔记

    洛谷平台题单100链接:https://www.luogu.com.cn/training/100#problems 目录 学习笔记: P1001 A+B Problem P1000 超级玛丽游戏 P ...

  9. 【LGR-142-Div.4】洛谷入门赛 #13 考后分析与题解

    洛谷入门赛 #Round 13 比赛分析与总结 T1 魔方 题目背景 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 数据规模与约定 分析 AC代码 注意 T2 教学楼 ...

  10. 【洛谷OJ C++】洛谷题单101 入门2分支结构 题解及学习笔记

    洛谷题单101链接:https://www.luogu.com.cn/training/101#problems 笔记及题解目录: 学习笔记: P5710 [深基3.例2]数的性质 P5711 [深基 ...

最新文章

  1. windows环境phpstorm调试环境搭建
  2. OpenCV实现0到9数字识别OCR
  3. [NOIp 2013]货车运输
  4. Rails Migration Data Model栏位修改及数据类型介绍
  5. Vagrant搭建可移动的PHP开发环境
  6. java gc堆中的分区_jvm内存各个区域详解
  7. 【转】ASP.net2。0中解决无法获取 GridView 隐藏列值问题
  8. 计算机显示器分辨率,如何设置电脑显示器的分辨率
  9. Google Code 中使用svn工具说明
  10. laravel很慢_Laravel网站打开速度优化的方法汇总
  11. 爬虫——获取页面源代码
  12. 免费基金股票接口大全,macd,kdj,cci,威廉指标,神奇九转大全
  13. ffmpeg将mp3转m4a文件
  14. Linux之系统痕迹命令
  15. 《重新定义公司:谷歌是如何运营的》读书笔记
  16. NYOJ-61 传纸条 双线动态
  17. c语言最长递增子序列nlogn,十月常见算法考题、最长递增子序列,Leetcode第300题最长上升子...
  18. mysql创建供应商标_mysql 建数据库
  19. intel服务器主板维修,intel服务器主板
  20. 8.10Dubbo框架里的微服务组件

热门文章

  1. 刘锋:互联网50年,从“巨网”到“大脑”
  2. NC17389-凤 凰(并查集)
  3. 个人作品展示与软件下载
  4. JavaSE_day14Map集合和Map集合的实现类
  5. HTML怎么把图片占满表格,CSS解决表格或图片内容将页面撑开的办法
  6. FL Studio12中Fruity Blood Overdrive插件使用教程
  7. 推荐:武汉java培训哪家教育机构比较好
  8. 从您的shell调用其他shells
  9. Shell的基础用法
  10. CV中直方图比较方法