使用STL 中 多重映射容器查询上课时间 c++20完整代码
时间: 2024-02-28 22:54:11 浏览: 88
好的,以下是使用C++20的STL多重映射容器查询上课时间的完整代码:
```c++
#include <iostream>
#include <map>
#include <string>
int main() {
std::multimap<std::string, std::string> schedule;
// 添加上课时间和课程
schedule.insert({"周一", "数学"});
schedule.insert({"周一", "英语"});
schedule.insert({"周二", "物理"});
schedule.insert({"周三", "化学"});
schedule.insert({"周三", "历史"});
schedule.insert({"周四", "地理"});
// 查询周三的上课时间
std::cout << "周三的上课时间为:" << std::endl;
auto iter = schedule.equal_range("周三");
for (auto it = iter.first; it != iter.second; ++it) {
std::cout << it->second << std::endl;
}
return 0;
}
```
在上面的代码中,我们首先定义了一个多重映射容器 `std::multimap<std::string, std::string> schedule`,然后通过 `insert` 函数添加了一些上课时间和课程。
接着,我们使用STL中的 `equal_range` 函数来查询周三的上课时间。这个函数会返回一个迭代器区间,其中第一个迭代器指向第一个匹配的元素,第二个迭代器指向最后一个匹配的元素的下一个位置。我们可以通过遍历这个区间来获取所有匹配的元素。
最后,我们遍历输出查询结果。
需要注意的是,我们在查询时使用了 `equal_range` 函数,这个函数返回的迭代器区间可能包含多个元素,需要使用循环遍历输出。
阅读全文