链接
http://ac.jobdu.com/problem.php?pid=1069
-
题目描述:
-
输入N个学生的信息,然后进行查询。
-
输入:
-
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:02030104
-
输出:
-
输出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
思路
用字典的数据结构,将学号存储称字符串,用作索引
c++ map stl:
数据的清空与判空
清空map中的数据可以用clear()函数,判定map中是否有数据可以用empty()函数,它返回true则说明是空map
ac代码
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
#include <map>
using namespace std;
struct student
{
char name[100];
char sex[100];
int age;
};
int main()
{
map<string,student> a;
int T;
string num;
while(cin >> T){
for(int i=0;i<T;i++)
{
student u;
cin >>num >> u.name >> u.sex >> u.age;
a[num] = u;
}
cin >> T;
for(int i=0;i<T;i++)
{
string temp;
cin >> temp;
if(a.find(temp) != a.end())
cout << temp << ' ' << a[temp].name << ' ' << a[temp].sex << ' ' << a[temp].age << endl;
else
printf("No Answer!\n");
}
}
return 0;
}