Qt foreach关键字用法(无师自通)
2024-09-30 20:28:11
Qt 提供一个关键字 foreach (实际是 <QtGlobal> 里定义的一个宏)用于方便地访问容器里所有数据项。
foreach 关键字用于遍历容路中所有的项,使用 foreach 的句法是:
foreach (variable, container)
使用 foreach 的代码比使用迭代器更简洁。例如,使用 foreach 遍历一个 QLinkedList<QString>
的示例代码如下:
- QLinkedList<QString> list;
- ...
- QString str;
- foreach (str, list)
- qDebug() << str;
用于迭代的变量也可以在 foreach 语句里定义,foreach 语句也可以使用花括号,可以使用 break 退出迭代,示例代码如下:
- QLinkedList<QString> list;
- ...
- foreach (const QString &str, list) {
- if (str.isEmpty())
- break;
- qDebug() << str;
- }
对于 QMap 和 QHash,foreach 会自动访问“键-值”对里的值,所以无需调用 values()。如果需要访问键则可以调用 keys(),示例代码如下:
- QMap<QString, int> map;
- ...
- foreach (const QString &str, map.keys())
- qDebug() << str << ':' << map.value(str);
对于多值映射,可以使用两重 foreach 语句,示例代码如下:
- QMultiMap<QString, int> map;
- ...
- foreach (const QString &str, map.uniqueKeys()) {
- foreach (int i, map.values(str))
- qDebug() << str << ':' << i;
- }
注意,foreach 关徤字遍历一个容器变量是创建了容器的一个副本,所以不能修改原来容器变量的数据项。
最新文章
- kettle将Excel数据导入oracle
- 小游戏runpig总结
- Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
- BZOJ 1090: [SCOI2003]字符串折叠
- Crystal Report 遇到需要登录的问题
- Flink - metrics
- c# 关键字delegate、event(委托与事件)[MSDN原文摘录][2]
- erlang远程加载模块须知
- web.xml整合s2sh内容
- 删除或清空具有外键约束的表数据报-ERROR 1701 (42000)
- NSMutableString
- ios--uitextfield动态限制输入的字数(解决方式)
- 动态规划之一ones
- Hibernate介绍和入门案例
- Android-第一天
- 虚拟机搭建CentOS主机win10通过xshell连接
- bs4抓取糗事百科
- jQuery滑动
- 常见 HTTP/FTP/WebSocket 错误代码大全 - 转
- php in_array 的一个坑
热门文章
- UI自动化测试框架Gauge 碰到无法识别Undefined Steps 红色波纹标记
- Kubernetes部署-二进制方式
- webpack 命令行报错“webpack” 不是内部或外部命令的解决方法
- IntelliJ IDEA2021.2 常用快捷键汇总总结
- SetupDi系列函数
- LUSE: 无监督数据预训练短文本编码模型
- Linux下获取当前程序的绝对路径
- Axure RP 9 Enterprise/Pro/Team for Mac/Windows安装破解版激活教程
- nacos Failed to obtain JDBC Connection 连接异常
- 关于document.write()方法重绘页面问题