C++ 初学者:实现考试座位号快速查询程序
好的,下面是一个用C++编写的程序,它可以帮助学生快速找到他们的座位号。这个程序使用了基本的数据结构和算法,适合C++初学者理解。 ```cpp #include <iostream> #include <vector> #include <string> #include <unordered_map> using namespace std; int main() { int n; cin >> n; // 使用 unordered_map 存储座位号和学号的对应关系 unordered_map<string, int> seatMap; for (int i = 1; i <= n; ++i) { string studentID; cin >> studentID; seatMap[studentID] = i; } int m; cin >> m; for (int i = 0; i < m; ++i) { string queryID; cin >> queryID; if (seatMap.find(queryID) != seatMap.end()) { cout << seatMap[queryID] << endl; } else { cout << "na" << endl; } } return 0; } ``` 代码解释 1. 输入部分: - 首先读取学生人数 `n`。 - 然后读取每个学生的学号,并将其与座位号存储在一个 `unordered_map` 中。`unordered_map` 是一个哈希表,可以快速查找键值对。 2. 查询部分: - 读取待查询的学生人数 `m`。 - 对于每个待查询的学号,检查其是否在 `unordered_map` 中存在。 - 如果存在,输出对应的座位号;如果不存在,输出 `na`。 为什么使用 `unordered_map`? - `unordered_map` 是一个哈希表,可以在平均情况下以常数时间复杂度 \(O(1)\) 进行查找操作。这对于处理大量的查询非常高效。 - 相比于使用 `map`(红黑树实现),`unordered_map` 在查找速度上通常更快,尤其是在数据量较大的情况下。 注意事项 - 输入和输出的格式需要严格遵循题目要求。 - 确保输入的学号和座位号正确无误,避免出现输入错误导致程序出错。 希望这个程序对你有帮助!如果有任何问题或需要进一步的解释,请随时提问。 ######[AI写代码神器 | 498点数解答 | 2024-10-18 23:44:11]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- 课程成绩统计程序 3:从继承到组合,解锁灵活开发新姿势!(字节豆包 | 2064点数解答 | 2025-12-04 10:47:33)91
- 补全含错误代码:Vue结合Element UI组件实现查询、新增及表格展示功能 ( | 400点数解答 | 2023-12-19 15:20:50)444
- 单线程频繁查ClickHouse致CPU飙升?这些优化方案速看!(DeepSeek | 491点数解答 | 2025-02-13 17:49:54)240
- MySQL:巧用 NOT LIKE 查询字段不包含特定字符串及注意要点 (DeepSeek | 264点数解答 | 2025-02-13 18:25:01)187
- C++ 初学者搞定小鱼“比可爱”计数难题:代码详解与复杂度分析(字节豆包 | 553点数解答 | 2026-02-07 18:59:03)54
- 过年期间光头强面临的美人松查询问题的C++解法(字节豆包 | 425点数解答 | 2026-02-24 19:53:50)22
- 狗熊岭美人松查找问题的 C++ 实现(字节豆包 | 683点数解答 | 2026-02-24 19:56:05)23
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)333
- C++ 实战:交通工具基类与小汽车类的继承实现及测试(字节豆包 | 391点数解答 | 2024-09-18 16:16:39)272
- Java 实现交通工具类继承:从 Vehicles 到 Car 的完整示例(字节豆包 | 289点数解答 | 2024-09-18 16:16:54)247
- Java 继承实战:交通工具与小汽车类的定义与测试(字节豆包 | 293点数解答 | 2024-09-18 21:36:23)369