C++ 实现类似 Python 字典:虚拟键码与英文名映射
在 C++ 中,可以使用 STL 中的 unordered_map 来实现类似 Python 的字典。具体实现如下:
#include <unordered_map>
#include <string>
// 定义一个 unordered_map,key 为虚拟键码,value 为英文名
std::unordered_map<int, std::string> key_map = {
{0x41, 'A'},
{0x42, 'B'},
{0x43, 'C'},
// 其他键值对
};
// 根据键值查找键名
std::string get_key_name(int key_code) {
auto it = key_map.find(key_code);
if (it != key_map.end()) {
return it->second;
}
return "";
}
// 根据键名查找键值
int get_key_code(const std::string& key_name) {
for (const auto& p : key_map) {
if (p.second == key_name) {
return p.first;
}
}
return 0;
}
在上述代码中,我们定义了一个 unordered_map 来存储键值对,其中键为虚拟键码,值为英文名。可以根据键值查找键名,也可以根据键名查找键值。在查找时,可以使用 unordered_map 提供的 find 函数来查找是否有对应的键值或键名。
原文地址: https://www.cveoy.top/t/topic/ntGG 著作权归作者所有。请勿转载和采集!