zoukankan      html  css  js  c++  java
  • Qt foreach关键字用法

    Qt提供一个关键字 foreach (实际是 <QtGlobal> 里定义的一个宏)用于方便地访问容器里所有数据项。

    foreach 关键字用于遍历容路中所有的项,使用 foreach 的句法是:

    foreach (variable, container)

    使用 foreach 的代码比使用迭代器更简洁。例如,使用 foreach 遍历一个 QLinkedList<QString> 的示例代码如下:

    1 QLinkedList<QString> list;
    2 ...
    3 QString str;
    4 foreach (str, list)
    5     qDebug() << str;

    用于迭代的变量也可以在 foreach 语句里定义,foreach 语句也可以使用花括号,可以使用 break 退出迭代,示例代码如下:

    1 QLinkedList<QString> list;
    2 ...
    3 foreach (const QString &str, list) 
    4 {
    5     if (str.isEmpty())
    6         break;
    7     qDebug() << str;
    8 }

    对于 QMap 和 QHash,foreach 会自动访问“键-值”对里的值,所以无需调用 values()。如果需要访问键则可以调用 keys(),示例代码如下:

    1 QMap<QString, int> map;
    2 ...
    3 foreach (const QString &str, map.keys())
    4     qDebug() << str << ':' << map.value(str);

    对于多值映射,可以使用两重 foreach 语句,示例代码如下:

    1 QMultiMap<QString, int> map;
    2 ...
    3 foreach (const QString &str, map.uniqueKeys()) 
    4 {
    5     foreach (int i, map.values(str))
    6         qDebug() << str << ':' << i;
    7 }

    注意,foreach 关徤字遍历一个容器变量是创建了容器的一个副本,所以不能修改原来容器变量的数据项。

  • 相关阅读:
    TXLSReadWriteII 公式计算
    Delphi TXLSReadWriteII2 带的demo中直接编辑XLS文件的例子
    delphi图片欣赏
    SQL 读取csv 文件批量插入数据
    Delphi TXLSReadWriteII 导出EXCEL
    Rollup 与 webpack的区别
    ref 属性使用eslint报错
    内容超出省略实现
    mac 环境配置
    前端学习资料整理
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12169625.html
Copyright © 2011-2022 走看看