题目描述

您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 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. 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(三):为枚举类型创建方法
  2. DL之SSD:SSD算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. linux开机自动启动(自启动)脚本、程序(初始化脚本)(海康摄像头自启动程序)
  4. 中心化(又叫零均值化)和标准化(又叫归一化)
  5. 16.枚举中的option和result.rs
  6. 结合zxing 和zbar 扫一扫
  7. 十大经典排序算法系列
  8. Swing写qq聊天软件(想要QQ表情@我呦)
  9. e480win7显卡驱动_win7系统联想e480安装的操作方法
  10. ISO20000/ISO27001认证区别和证书展示
  11. nginx跨域配置步骤
  12. python中如何判断词性_Python自然语言处理 5 分类和标注词汇
  13. b类 蚂蚁金服_终于拿到蚂蚁金服Offer!!!分享一下全程面试题和面试经验!...
  14. [2017湖南集训7-8]暗牧 虚树+最短路
  15. Snipaste——一款强大又实用的截图工具
  16. linux使用yum安装ruby,yum安装ruby_安装 Ruby
  17. 民间秘术——各类求仙方法
  18. 凯立德car 3.0 夏季版 升级过程(备忘)
  19. 武汉光庭总经理苏晓聪:智能网联控制器实践与创新
  20. 笔试编程题——数组中出现次数超过一半的数字

热门文章

  1. 基于Linux的航班管理系统
  2. 扬长避短,做自己最擅长的事情
  3. 什么是三次握手、什么是四次握手
  4. 他三流大学毕业,从学渣逆袭成上市CEO
  5. 中国网络安全企业50强(来源自安全牛公司)
  6. 华为荣耀10作为安卓手机程序开发真机
  7. [知识梳理]虚拟语气
  8. devops工具-Ansible基础
  9. 2022换工作面经--开课吧
  10. 【悠然】mysql简单指令笔记