当前位置: 首页 > article >正文

QT 键值对集合QMap

在QT中,可以使用QMap作为键值对的集合。QMap是Qt的一个模板类,它存储了键值对,并且可以通过键来快速查找值。

导入

#include <QMap>

以下是一些使用QMap的方法:

1.创建并初始化一个

QMap<int, QString> UserDepartmentList;
UserDepartmentList[0]="--请选择--";
    UserDepartmentList[10]="计算机系";
    UserDepartmentList[11]="电子系";
    UserDepartmentList[12]="历史系";
    UserDepartmentList[13]="中文系";

2.插入数据

UserDepartmentList.insert(1, "音乐系");
UserDepartmentList.insert(2, "体育系");
UserDepartmentList.insert(3, "化学系");

3.移除数据

UserDepartmentList.remove(1); // 移除键为 1 的项

4.遍历数据

//初始化 部门 下拉列表数据
    QMap<int,QString> departmentList = CommonData::GetInstance()->UserDepartmentList;

    for(auto item = departmentList.begin(); item != departmentList.end(); ++item)
    {
        //qDebug() << "Key:" << item.key() << "Value:" << item.value();
        ui->cbo_Department->addItem(item.value());//添加下拉选项
    }
    ui->cbo_Department->setCurrentIndex(0);//设置默认选择索引

4.1 使用keys方法和values方法分别获取所有的键和值:

QList<int> keys = UserDepartmentList.keys();
QList<QString> values = UserDepartmentList.values();

5.使用value方法获取键对应的值:

QString value = UserDepartmentList.value(2);

由值找键

int key = -1;
QString value = "化学系";
for (auto it = UserDepartmentList.begin(); it != UserDepartmentList.end(); ++it) {
    if (it.value() == value ) {
        key = it.key();
        break;
    }
}

6.使用contains方法检查是否包含某个键:

if (UserDepartmentList.contains(2)) {
    // UserDepartmentList包含键2
}

7.使用remove方法删除键值对:

UserDepartmentList.remove(3); // 删除键为3的键值对

8.使用size方法获取键值对的数量:

int size = UserDepartmentList.size();

9.修改键值

UserDepartmentList[10]="计算机系";

10.清除数据

UserDepartmentList.clear();

11.一个键对应多个值

QMultiMap<int, QString> multiMap;
multiMap.insert(1, "A");
multiMap.insert(1, "B");
multiMap.insert(2, "C");

// 遍历 QMultiMap 数据
for (auto it = multiMap.begin(); it != multiMap.end(); ++it) {
    qDebug() << "Key:" << it.key() << "Value:" << it.value();
}

// 获取所有值为某键的列表
QList<QString> valuesForKey = multiMap.values(1);
qDebug() << "Values for key 1:" << valuesForKey;

遍历数据

for (auto it = multiMap.begin(); it != multiMap.end(); ++it) {
    qDebug() << "Key:" << it.key() << "Value:" << it.value();
}


http://www.kler.cn/a/504852.html

相关文章:

  • C语言:-三子棋游戏代码:分支-循环-数组-函数集合
  • Flink系统知识讲解之:容错与State状态管理
  • MC1.12.2 macOS高清修复OptiFine运行崩溃
  • Termora跨平台 SSH/SFTP/Terminal 客户端工具
  • Vue语音播报功能
  • 神经网络
  • 【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS
  • 标准通上线标准「全文检索」功能,提升查询精准度!
  • Android控件底色蓝色无法修改、高版本无法安装app、找不到xml、找不到java文件、目录不显示等问题
  • windows下编译php源码
  • 基于PyQt - 6的医疗多模态大模型医疗研究系统中的创新构建与应用(上 .文章部分)
  • 神经网络
  • TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG
  • 链路追踪SkyWalking
  • Shell正则表达式与文本处理三剑客(grep、sed、awk)
  • MongoDB 大俗大雅,高端的知识讲“通俗” -- 2 嵌套和引用
  • 科研总结系列|2-GPT学术写作提示词集锦手册
  • mysql 双主双从 + proxysql 代理
  • fpga系列 HDL:跨时钟域同步 双触发器同步器
  • 在 Webpack 中使用 预加载(Preloading) 技术可以通过动态导入(import())以及指定预加载的方式来进行优化
  • 新版AndroidStudio通过系统快捷创建带BottomNavigationView的项目踩坑记录
  • 服务器、电脑和移动手机操作系统
  • HDMI接口
  • 代码随想录算法训练营第十三天(2)|541. 反转字符串II
  • 在服务器上增加新网段IP的路由配置
  • msxml安装失败怎么办,如何解决