博客
关于我
[编程题]Course List for Student (25)
阅读量:356 次
发布时间:2019-03-04

本文共 1298 字,大约阅读时间需要 4 分钟。

关键词:vector , map
试题链接:
https://www.nowcoder.com/questionTerminal/a6e370ac55fc4bd49d0bb62710e35868
问题描述:在这里插入图片描述
在这里插入图片描述
思路:
这道题的核心就是变长数组vector的应用(以及map的应用),做题之前应当好好考虑一下vector该用在存储什么变量是最合适的,考虑它“长度可变”的特性让自己结题的过程变得更加简单。

备注:
使用algorithm中的sort函数对vector中的数据进行排序时,应当用到begin()和end()函数,而不是像对普通数组那样直接(头指针,头指针+数组长度)。

解决方案:

#include<iostream>#include<vector>#include<string>#include<algorithm>#include<map>using namespace std;int main(){       int courseNum;    int studentNum;    map<string,vector<int> > stumap;    int course,num;    char name[5];        cin>>studentNum>>courseNum;    for(int i=0;i<courseNum;i++){           cin>>course>>num; //课程号和选该课程的学生人数        //第一次出现该学生的名字        for(int j=0;j<num;j++){               cin>>name;            if(stumap.count(name)==0){                   vector<int> list;                list.push_back(course);                stumap[name]=list;            //非第一次出现学生名字            }else{                   stumap[name].push_back(course);            }        }    }    //学生顺序    for(int i=0;i<studentNum;i++){           cin>>name;        cout<<name<<" "<<stumap[name].size()<<" ";        //给课程号排序        sort(stumap[name].begin(),stumap[name].end());        for(int j=0;j<stumap[name].size();j++){               cout<<stumap[name][j]<<" ";        }        cout<<endl;    }     return 0;}

转载地址:http://onyg.baihongyu.com/

你可能感兴趣的文章
我的CSDN 图床
查看>>
python_遍历操作
查看>>
天池大赛o2o优惠券第一名代码解读_xgboost方式
查看>>
Web基础应用 NFS服务基础 触发挂载
查看>>
DNS服务基础 特殊解析 DNS主从架构 DNS子域授权 DNS查询
查看>>
python_透视表操作unstack
查看>>
端口列表_端口占用问题解决kill_ps_net
查看>>
create-react-app路由的实现原理
查看>>
PSI值
查看>>
lift曲线
查看>>
【平庸附件】python反序列化----本地测试 -----踩坑坑坑坑坑坑注意点! 这个夭折了,可以看看那些nb的
查看>>
字符串与数组的转化的简单易懂的方法
查看>>
中缀表达式与后缀表达式
查看>>
力扣—寻找两个正序数组的中位数(Median of Two Sorted Arrays Java)
查看>>
海思Hi3531DV100开发环境搭建
查看>>
Xilinx Zynq pl353-nand使用
查看>>
JavaScript上传下载文件
查看>>
QWaitCondition把异步调用封装成同步调用
查看>>
windows驱动开发-编译错误集合
查看>>
嵌入式linux系统应用开发
查看>>