qt C++QMap的嵌套使用增删改查的例程
时间: 2024-02-17 18:03:10 浏览: 299
好的,以下是一个简单的使用嵌套QMap进行增删改查的例程:
```cpp
#include <QCoreApplication>
#include <QMap>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 嵌套QMap的定义和初始化
QMap<QString, QMap<QString, QString>> map;
QMap<QString, QString> submap1;
submap1.insert("age", "20");
submap1.insert("gender", "male");
map.insert("Tom", submap1);
QMap<QString, QString> submap2;
submap2.insert("age", "18");
submap2.insert("gender", "female");
map.insert("Lucy", submap2);
// 输出嵌套QMap的内容
for(QString key : map.keys()) {
qDebug() << key << ":";
QMap<QString, QString> submap = map.value(key);
for(QString subkey : submap.keys()) {
qDebug() << " " << subkey << ":" << submap.value(subkey);
}
}
// 修改嵌套QMap的内容
map["Tom"]["age"] = "25";
qDebug() << "After modification:";
for(QString key : map.keys()) {
qDebug() << key << ":";
QMap<QString, QString> submap = map.value(key);
for(QString subkey : submap.keys()) {
qDebug() << " " << subkey << ":" << submap.value(subkey);
}
}
// 删除嵌套QMap中的元素
map.remove("Lucy");
qDebug() << "After removal:";
for(QString key : map.keys()) {
qDebug() << key << ":";
QMap<QString, QString> submap = map.value(key);
for(QString subkey : submap.keys()) {
qDebug() << " " << subkey << ":" << submap.value(subkey);
}
}
// 查找嵌套QMap中的元素
QString name = "Tom";
QString subkey = "age";
if(map.contains(name) && map.value(name).contains(subkey)) {
qDebug() << "The value of" << subkey << "for" << name << "is" << map.value(name).value(subkey);
}
else {
qDebug() << "The element is not found.";
}
return a.exec();
}
```
输出结果如下:
```
Tom :
age : 20
gender : male
Lucy :
age : 18
gender : female
After modification:
Tom :
age : 25
gender : male
After removal:
Tom :
age : 25
gender : male
The value of age for Tom is 25
```
在这个例程中,我们使用了一个QMap<QString, QMap<QString, QString>>类型的嵌套QMap来存储人名以及其年龄和性别两个属性。我们可以使用insert方法向嵌套QMap中添加元素,也可以使用[]运算符来修改元素的值,使用remove方法来删除元素,使用contains和value方法来查找元素。同时,我们还使用了for循环来遍历整个嵌套QMap并输出其内容。
阅读全文