foreach可以用来遍历容器,比如下面的使用场景:
QVector<int> container;
container.push_back(1);
container.push_back(2);
container.push_back(3);
foreach(int x, container)
{
qDebug() << x;
}
关于foreach的实现代码可以在QtCore的qglobal.h中查看。本篇博客介绍下它的大概实现,可以当作是对它的模拟仿真。
上面提到了它的应用场景,也就是它的使用方法。看下它的原型:
Q_FOREACH(variable, container)
variable表示容器中的每个元素,包括类型和变量。container表示容器对象。foreach本身就是一个宏定义,内容是对容器的遍历。遍历容器,可以使用for循环来做,比如:
for (int i = 0; i < container.size(); ++i)
{
int x = container[i];
qDebug() << x;
}
或者,可以使用迭代器来实现,比如:
typedef QVector<int> Container;
for (Container::const_iterator iter = container.begin(); iter != container.end(); +&#