C++中利用 类似python的字典将 键盘的虚拟键码和英文名进行关联起来组成键值对具体怎么实现然后可以用键值找出键名 然后键名找键值具体怎么实现 stdmapint QString key_map
可以使用C++ STL中的map容器来实现类似Python的字典。map容器是一种有序的关联容器,可以存储键值对,并且可以通过键来访问值。
下面是一个示例代码,用于将键盘的虚拟键码和英文名进行关联起来:
#include <map>
#include <QString>
// 定义一个键值对类型,用于存储虚拟键码和英文名
typedef std::pair<int, QString> KeyPair;
// 定义一个map容器,用于存储键值对
std::map<int, QString> key_map;
// 添加键值对
key_map.insert(KeyPair(65, "A"));
key_map.insert(KeyPair(66, "B"));
key_map.insert(KeyPair(67, "C"));
// 使用键值查找键名
int key_code = 65;
QString key_name = key_map[key_code];
// key_name 将被设置为 "A"
// 使用键名查找键值
QString name = "C";
for (auto iter = key_map.begin(); iter != key_map.end(); iter++) {
if (iter->second == name) {
int code = iter->first;
// code 将被设置为 67
break;
}
}
在上面的代码中,我们定义了一个键值对类型KeyPair,用于存储虚拟键码和英文名。然后,我们创建了一个map容器key_map,并使用insert函数向其中添加了三个键值对。
使用key_map[key_code]可以通过键值查找键名,而通过遍历map容器可以实现通过键名查找键值。具体来说,我们使用auto关键字定义一个迭代器iter,然后使用iter->second来访问键名,如果找到了目标键名,我们可以使用iter->first来访问对应的键值。注意,由于map容器是有序的,所以遍历时是按照键值的大小顺序进行的
原文地址: https://www.cveoy.top/t/topic/ckSO 著作权归作者所有。请勿转载和采集!