首页 > 代码库 > 题目1069:查找学生信息(STL的map简单应用)

题目1069:查找学生信息(STL的map简单应用)

题目描述:                       

 输入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!”
样例输入:                       
401 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 1950203010403
样例输出:                       
02 刘唐 男 2303 张军 男 1901 李江 男 2104 王娜 女 1903 张军 男 19
234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 # 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****************************************************************/ 
View Code