《洛谷深入浅出基础篇》P5266 学籍管理——map的应用

上链接:P5266 【深基17.例6】学籍管理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=N7T8https://www.luogu.com.cn/problem/P5266#submit

题干: 

题目描述

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

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

输入格式

输出格式

输入输出样例

输入 #1复制

5
1 lxl 10
2 lxl
3 lxl
2 lxl
4

输出 #1复制

OK
10
Deleted successfully
Not found
0

 这道题是map的基础运用

让我们来介绍一下map的一些基本函数

首先定义一个map

代表mmp的下标数据类型是string,值数据类型是int 

第一个就是插入

我们可以用一个最简单的插入方式数组下标式

如果map内已经存在该下标,那么新的值会覆盖原来的值。如果不存在,就创建一个新下标。

第二个是查询map.find()

map.find(),查找的是map的下标,如果map里存在该下标,那么返回该迭代器,否则返回map.end()

第三个是删除,map.erase()

参数是具体下标,或者迭代器,或者一个区域

但是无论是迭代器,区域都是指向下标的,也就是键值

 erase的返回参数是0或1,代表是否删除成功。

当map里面存在该元素,删除成功,反正不成功

第四个是求map的元素个数:map.size()

返回map里元素的个数

好的,接下来就是上代码了:

int score, t,opt;
string name;
int main()
{
	map<string, int> mmp;
	cin >> t;
	while (t--)
	{
		cin >> opt;
		if (opt == 1)
		{
			cin >> name >> score;
			mmp[name] = score;
			cout << "OK" << endl;
		}
		else if (opt == 2)
		{
			cin >> name;
			if (mmp.find(name) != mmp.end())cout << mmp[name] << endl;
			else cout << "Not found" << endl;
		}
		else if (opt == 3)
		{
			cin >> name;
			if (mmp.find(name) != mmp.end())
			{
				cout <<"Deleted successfully" << endl;
				mmp.erase(name);
			}
			else cout << "Not found" << endl;
		}
		else
			cout << mmp.size() << endl;
	}

}

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

louisdlee.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值