题目1069:查找学生信息(STL的map简单应用)
题目描述:
输入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
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 # include<iostream> using namespace std; //# include<algorithm> # include<string> # include<map> /* int main() { int n; while (cin >> n) { } return 0; } */ struct Stu { string number; string name; string sex; int age; }; int main() { int n, m, i, j, k; map<string, Stu> stu; Stu t; string number[10001]; while (cin >> n) { for (i = 1; i <= n; i++) { cin >> t.number >> t.name >> t.sex >> t.age; stu[t.number] = t; } cin >> m; for (i = 1; i <= m; i++) { cin >> number[i]; } for (i = 1; i <= m; i++) { map<string, Stu>::iterator it = stu.find(number[i]); if (it == stu.end()) { cout << "No Answer!" << endl; } else { t= it->second; cout << t.number << " " << t.name << " " << t.sex << " " << t.age << endl; } } } return 0; } /************************************************************** Problem: 1069 User: mmcNuaa@163.com Language: C++ Result: Accepted Time:130 ms Memory:1928 kb ****************************************************************/