QMap与结构体相结合
时间: 2023-06-22 20:26:32 浏览: 249
在 C++ 中,QMap 是一种关联容器,提供了一种将键映射到值的方式。结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。将 QMap 与结构体相结合可以实现一种将键映射到结构体的方式。
例如,假设我们有一个结构体定义如下:
```
struct Person {
QString name;
int age;
};
```
我们可以使用 QMap 将字符串映射到该结构体,代码如下:
```
QMap<QString, Person> personMap;
```
此时,personMap 就是一个将字符串映射到 Person 结构体的 QMap 容器。我们可以向其中添加元素,代码如下:
```
Person p1 = {"Tom", 20};
Person p2 = {"Jack", 25};
personMap.insert("Tom", p1);
personMap.insert("Jack", p2);
```
以上代码将两个 Person 结构体添加到 personMap 中,分别以字符串 "Tom" 和 "Jack" 作为键。我们可以通过键来访问对应的结构体,代码如下:
```
Person p = personMap.value("Tom");
qDebug() << "Name:" << p.name << "Age:" << p.age;
```
以上代码将输出 "Name: Tom Age: 20",表示访问到了 personMap 中键为 "Tom" 的结构体。这样,我们就可以使用 QMap 将结构体与键值对相结合,实现一种方便的数据结构。
阅读全文