• 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 关徤字遍历一个容器变量是创建了容器的一个副本,所以不能修改原来容器变量的数据项。

  • 相关阅读:
    每天一道Rust-LeetCode(2019-06-11)
    每天一道Rust-LeetCode(2019-06-10)
    每天一道Rust-LeetCode(2019-06-08)
    每天一道Rust-LeetCode(2019-06-07)
    每天一道Rust-LeetCode(2019-06-06)
    每天一道Rust-LeetCode(2019-06-05)
    每天一道Rust-LeetCode(2019-06-04)
    linux 基本命令
    使用 DrMemory 详细教程
    C++ 虚函数表解析
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/12169625.html
Copyright © 2020-2023  润新知