c++中map键值反转
时间: 2023-10-31 21:55:10 浏览: 176
在C++中,可以使用一个辅助的map或者unordered_map来实现map的键值反转。下面是一个示例代码:
```cpp
#include <iostream>
#include <map>
#include <unordered_map>
int main() {
std::map<int, std::string> originalMap;
originalMap[1] = "apple";
originalMap[2] = "banana";
originalMap[3] = "orange";
std::map<std::string, int> reversedMap;
// 使用辅助map进行键值反转
for (const auto& pair : originalMap) {
reversedMap[pair.second] = pair.first;
}
// 输出反转后的map
for (const auto& pair : reversedMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果为:
```
apple: 1
banana: 2
orange: 3
```
在上述示例中,我们首先创建了一个原始的map对象`originalMap`,其中包含了一些键值对。然后,我们创建了一个辅助的map对象`reversedMap`,用于存储键值反转后的结果。
接下来,我们使用一个循环遍历原始的map对象`originalMap`中的键值对,将键值对中的键(原始map中的值)作为反转后map的键,原始map中的键作为反转后map的值,并将其插入到`reversedMap`中。
最后,我们遍历反转后的map对象`reversedMap`,输出反转后的键值对。
需要注意的是,如果原始map中存在重复的值,反转后的map会丢失一些键,因为map要求键是唯一的。
希望这个示例能够帮助你实现C++中map的键值反转。如果还有其他问题,请随时提问!
阅读全文