Qt的foreach

foreach 是 Qt 框架提供的一个便利宏,用于简化容器遍历操作。它提供了一种更简洁、更易读的方式来迭代容器中的元素,类似于 C++11 引入的范围 for 循环。
主要特点
1、自动类型推导 无需显式声明迭代器类型或使用 auto,编译器自动推断元素类型:
2、隐式容器复制 遍历前会创建容器的临时副本(避免原始容器被修改的影响):

   QVector<int> vec = {1, 2, 3};
   foreach (int num, vec) {
       vec.append(num * 10); // 修改原始容器不影响遍历
   }
   // vec 最终为 [1, 2, 3, 10, 20, 30]

3、支持常见容器 兼容 Qt 容器和 STL 容器:

   // Qt 容器
   foreach (QString key, map.keys()) { ... }
   
   // STL 容器
   std::list<double> values;
   foreach (double val, values) { ... }

4、只读安全遍历 防止在遍历时意外修改容器结构(添加/删除元素),但允许修改元素值:

   QList<QWidget*> widgets;
   foreach (QWidget *w, widgets) {
       w->setVisible(false); // 允许修改元素
       // widgets.removeOne(w); // 错误!会崩溃
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值