简单的map容器的应用,刚开始学会用map,所以做的时候费了不少功夫,特别是输入的问题(有空格的字符串,数字和字符同时输入),写下来方便以后复习,
参考了别人的代码:
#include<iostream>#include<map>#include<string>using namespace std;int score;int main(){
int n,i,m,j,count; cin>>n; string s; char name[30]; map<string,int> namemap; for(i = 0;i < n;i++){ getchar(); //带空格的字符串输入,感觉用gets()比较好,前面的getchar()是回车符
gets(name); s = name; //map<string,int> 所以输入字符数组再转化成string型的 namemap[s] = 0; } cin>>m; for(i = 0;i < m;i++){ for(j = 0;j < n;j++){ scanf("%d ",&score); //%d后面跟一个空格 因为输入的时候是用空格区分的 没有这个空格 不显示输出 gets(name); s = name; namemap[s] += score; } count = 1; map<string,int>::iterator pos; s = "Li Ming"; for(pos = namemap.begin();pos != namemap.end();pos++){ if(pos->second > namemap[s]) count++; } cout<<count<<endl; } return 0; }