c++ unoredered_map reverse
时间: 2023-09-19 22:01:15 浏览: 61
unordered_map是C++标准库中的一个关联容器,用于存储键值对的集合,并且以哈希表的形式组织数据。而"reverse"可以理解为将容器中的键和值进行颠倒的操作。
根据unordered_map的定义,它内部的键是唯一的,而值可以重复。对于unordered_map的reverse操作,最直观的理解就是将键值对中的键和值进行交换。换句话说,变成原来的值为键,原来的键为值。
然而,unordered_map并没有提供直接的reverse函数或方法来实现这个操作。但我们可以通过遍历unordered_map,并建立一个新的unordered_map来实现键值对的颠倒。
下面是一个简单的实现示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> original_map = {
{1, "Apple"},
{2, "Banana"},
{3, "Orange"}
};
std::unordered_map<std::string, int> reversed_map;
for (const auto& pair : original_map) {
reversed_map[pair.second] = pair.first;
}
// 输出结果
for (const auto& pair : reversed_map) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
输出结果如下:
Key: Apple, Value: 1
Key: Banana, Value: 2
Key: Orange, Value: 3
以上代码中,我们先建立了一个原始的unordered_map,然后遍历原始的unordered_map,将键和值进行交换,并放入新的unordered_map中。最后,我们使用for循环遍历新的unordered_map,并打印出键和值。
这样就完成了unordered_map的reverse操作,即将原来的键作为值,原来的值作为键,并将其组织为新的unordered_map。