编写这题的c++代码
时间: 2024-09-29 19:00:41 浏览: 17
为了编写这个问题的 C++ 代码,我们可以使用标准模板库 (STL) 中的 `unordered_map` 来存储学生姓名与其学号的映射关系。对于查询操作,可以直接查找名字。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
#include <unordered_map>
int main() {
int N, M;
std::cin >> N >> M; // 读取学生总数和查询人数
std::unordered_map<std::string, int> student_db; // 存储学生信息
for (int i = 0; i < N; ++i) {
std::string name;
int id;
std::cin >> name >> id; // 读取每个学生的姓名和学号
student_db[name] = id; // 将姓名和学号关联起来
}
for (int i = 0; i < M; ++i) {
std::string query_name;
std::cin >> query_name; // 读取查询的名字
auto it = student_db.find(query_name); // 查找这个名字
if (it != student_db.end()) { // 找到的话
std::cout << it->second << '\n'; // 输出学号
} else {
std::cout << "Not Found" << '\n'; // 没找到则输出提示
}
}
return 0;
}
```
这段代码首先读入学生信息,然后对每一个查询名字进行查找并打印相应学号。如果没找到,则输出 "Not Found"。