在C++中,可以使用std::map或std::unordered_map来实现整数和普通类型之间的双向映射。
示例代码如下:
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> intToStrMap;
std::map<std::string, int> strToIntMap;
// 添加映射关系
intToStrMap[1] = "one";
intToStrMap[2] = "two";
intToStrMap[3] = "three";
// 反向迭代器添加映射关系
for (const auto& pair : intToStrMap) {
strToIntMap[pair.second] = pair.first;
}
// 使用映射关系
std::cout << intToStrMap[2] << std::endl; // 输出: "two"
std::cout << strToIntMap["three"] << std::endl; // 输出: 3
return 0;
}
示例代码如下:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> intToStrMap;
std::unordered_map<std::string, int> strToIntMap;
// 添加映射关系
intToStrMap[1] = "one";
intToStrMap[2] = "two";
intToStrMap[3] = "three";
// 遍历unordered_map添加映射关系
for (const auto& pair : intToStrMap) {
strToIntMap[pair.second] = pair.first;
}
// 使用映射关系
std::cout << intToStrMap[2] << std::endl; // 输出: "two"
std::cout << strToIntMap["three"] << std::endl; // 输出: 3
return 0;
}
以上是使用std::map和std::unordered_map实现整数和普通类型之间的双向映射的方法。在实际应用中,可以根据具体需求选择合适的容器类型。
领取专属 10元无门槛券
手把手带您无忧上云