优博登录 map.values(str))qDebug() str : i;}注意

 设计团队     |      2021-08-03 10: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 关徤字遍历一个容器变量是建设了容器的一个副本,所以不能修改本来容器变量的数据项。