📅  最后修改于: 2023-12-03 14:52:40.346000             🧑  作者: Mango
在C++中,我们可以使用std::map
或std::unordered_map
来创建键-值对的映射关系。假设我们有一个已经存在的映射关系,并且我们想要交换键和对应值的位置,即将键作为值,将值作为键。
以下是用于实现此操作的步骤:
#include <map> // 如果使用 std::map
#include <unordered_map> // 如果使用 std::unordered_map
std::map<Key, Value> myMap; // 如果使用 std::map
std::unordered_map<Key, Value> myMap; // 如果使用 std::unordered_map
将键和对应的值插入映射中,确保键和值的类型与映射的类型一致。
myMap.insert(std::make_pair(key, value));
使用辅助变量来交换键和对应的值。
for (auto& entry : myMap) {
std::swap(entry.first, entry.second);
}
下面是一个完整的示例,演示了如何在C++中交换键和映射值:
#include <iostream>
#include <map> // 如果使用 std::map
#include <unordered_map> // 如果使用 std::unordered_map
int main() {
std::map<int, std::string> myMap; // 如果使用 std::map
// std::unordered_map<int, std::string> myMap; // 如果使用 std::unordered_map
// 插入键值对
myMap.insert(std::make_pair(1, "Apple"));
myMap.insert(std::make_pair(2, "Banana"));
myMap.insert(std::make_pair(3, "Orange"));
// 交换键值对
for (auto& entry : myMap) {
std::swap(entry.first, entry.second);
}
// 打印交换后的映射
for (const auto& entry : myMap) {
std::cout << "Key: " << entry.first << ", Value: " << entry.second << std::endl;
}
return 0;
}
上述示例中,我们首先包含了相应的头文件,然后创建了一个用于存储键-值对的映射。我们插入了三个键值对,然后使用循环来交换键和对应的值。最后,我们打印出了交换后的映射结果。
你可以根据自己的需求修改键和值的类型,并在所使用的映射类型上进行相应的更改。