您的位置:首页 > 财经 > 金融 > P5266【深基17.例6】学籍管理

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

2024/12/23 14:26:41 来源:https://blog.csdn.net/xhbqy/article/details/142286246  浏览:    关键词:P5266【深基17.例6】学籍管理

这样的学籍管理系统也是一个集合,但是功能更加复杂——需要根据索引找到对应的元素,并对这些元素进行操作。可以通过调用STL里面的map来解决这个问题。

map关联集合的本质也是一棵红黑树,可以看作一个下标可以是任意类型的数组。其头文件是map,可以调用map实现如下几个基础功能。

(1)map<A,B>ds

建立一个名字叫作ds、下标类型为A,元素类型为B的映射表,例如map<string,int>就是一个将string映射到int的映射表。

(2)ds[A]=B

把这个“数组”中下标为A的位置的值变成B,这里下标可以是任意类型,不一定限定为大于0的整数,比如map<string,string>ds,就可以进行ds["litchi"]="mascot"的操作。

还有很多操作,这里不详细介绍了。

比如:

ds[A]
ds.end()
ds.find(x)
ds.empty()
ds.size()
ds.erase(A)
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int n, opt, num, ans;
string name;
map<string, int>ds;
int main() {int n;cin >> n;while (n--) {cin >> opt;if (opt == 1) {cin >> name >> num;ds[name] = num;cout << "OK" << endl;} else if (opt == 2) {cin >> name;if (ds.find(name) != ds.end()) {cout << ds[name] << endl;} else {cout << "Not found" << endl;}} else if (opt == 3) {cin >> name;if (ds.find(name) != ds.end()) {ds.erase(ds.find(name));cout << "Deleted successfully" << endl;} else {cout << "Not found" << endl;}} else {cout << ds.size() << endl;}}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com