STL之map

1|0STL之map

1|1学籍管理

1|0题目描述

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

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

1|0样例

1|0样例输入

5 1 lxl 10 2 lxl 3 lxl 2 lxl 4

1|0样例输出

OK 10 Deleted successfully Not found 0

1|2map 做法

  • 常见功能

    • map<A, B> mp
      • 建立一个名字叫 mp 下标类型为 A,元素类型为 B 的映射表,例如 map<string, int> 就是一个将 string 映射到 int 的映射表。
    • mp[A] = B
      • 把“下标” A 的位置变为 B 。
    • mp[A]
      • 访问下标为 A 的元素。
    • mp.end()
      • 配合其他方法比较
    • mp.find(x)
      • 查询 x是下标)在映射表中的地址(查的是下标),如果这个数不存在,返回 mp.end
    • mp.erase(X)
      • 删除这个“数组”中下表为 A 的元素。
    • 如果访问 mp[A] 而该下标对应元素并不存在,会创造一个默认值。
  • 代码实现

    #include<iostream> #include<algorithm> #include<cstdio> #include<map> std::map<std::string, std::string> mp; std::string name, score; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); int n, opt; std::cin >> n; while(n--) { std::cin >> opt; switch(opt) { case 1: { std::cin >> name >> score; mp[name] = score; std::cout << "OK" << std::endl; break; } case 2: { std::cin >> name; if (mp.find(name) != mp.end()) { std::cout << mp[name] << std::endl; } else { std::cout << "Not found\n"; } break; } case 3: { std::cin >> name; if (mp.find(name) != mp.end()) { mp.erase(name); std::cout << "Deleted successfully\n"; } else { std::cout << "Not found\n"; } break; } case 4: { std::cout << mp.size() << std::endl; break; } } } return 0; }

__EOF__

本文作者Kdlyh
本文链接https://www.cnblogs.com/kdlyh/p/17860038.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   加固文明幻景  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示