简单的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;
}