题目描述
输入N个学生的信息,然后进行查询。
输入描述:
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:
02
03
01
04
输出描述:
输出M行,每行包括一个对应于查询的学生的信息。
如果没有对应的学生信息,则输出“No Answer!”
输入样例
4
01 李江 男 21
02 刘唐 男 23
03 张军 男 19
04 王娜 女 19
5
02
03
01
04
03
输出样例
02 刘唐 男 23
03 张军 男 19
01 李江 男 21
04 王娜 女 19
03 张军 男 19
//散列表
#include<bits/stdc++.h>
using namespace std;
//映射
map <string,string> student;
int main(){
int n,m;
cin>>n;//吃掉回车,因为下一个输入是getline
getchar();
for(int i=0;i<n;i++){
string str;
getline(cin,str);
int pos = str.find(" ");
string key = str.substr(0,pos);
student[key] = str;
}
cin>>m;
string key1,answer;
for(int j=0;j<m;j++){
cin>>key1;
answer = student[key1];
if(answer==""){
answer="No Answer!";
}
cout<<answer<<endl;
}
return 0;
}