用C++完成成绩查询小程序

题目描述:
班级中有N个学生,学生信息包括学号,姓名,成绩。要求根据学号查询姓名和成绩信息。

输入格式:
第一行输入一个数字N表示学生个数
接下来N行格式为
stuent_id name score
分别表示学号,姓名,成绩。

第N+2行输入一个整数Q,表示查询次数
接下来Q行每行一个学号,学号必定存在

输出格式:
对于每一次查询,输出姓名和成绩,中间用空格分离

输入样例:
3
3019213456 user01 50
3019213457 user02 100
3921244399 user03 99
2
3019213456
3019213457

输出样例:
user01 50
user02 100

数据范围与提示
1<=N,Q<=100
student_id为十位数字
姓名只包含小写字母和数字
分数为0~100的整数


#include <iostream>
#include <map>
#include <string>
using namespace std;

struct Student {
    long number;
    string name;
    int score;
};

int main(void)
{
    int n;
    cin >> n;
    map<long, Student> students;
    for (int i = 0; i < n; ++i) {
        Student tmp;
        cin >> tmp.number >> tmp.name >> tmp.score;
        students.insert(make_pair(tmp.number, tmp));
    }
    int q;
    cin >> q;
    for (int i = 0; i < q; ++i) {
        long qn;
        cin >> qn;
        map<long, Student>::iterator iter = students.find(qn);
        if (iter == students.end()) {
            cout << "not find " << qn << endl;
        } else {
            cout << iter->second.name << " " << iter->second.score << endl;
        }
    }
    return 0;
}