foreach在Qt中有什么问题?
我都试过了。这应该很简单,但我很乐意知道我的foreach到底发生了什么。这根本没用foreach在Qt中有什么问题?,qt,Qt,我都试过了。这应该很简单,但我很乐意知道我的foreach到底发生了什么。这根本没用 #include <QCoreApplication> //coreapplication or Qapplication the error is there #include <QList> #include <QDebug> int main() { QList<int> list;
#include <QCoreApplication>
//coreapplication or Qapplication the error is there
#include <QList>
#include <QDebug>
int main()
{
QList<int> list;
list << 1 << 2 << 3 << 4 << 5;
foreach (int i, list) //expected token ';' got 'int'.
{
qDebug() << i;
}
}
/*
QT += core gui
TARGET = QtTest
CONFIG += console
CONFIG -= app_bundle
CONFIG += no_keywords
TEMPLATE = app
SOURCES += main.cpp
*/
#包括
//coreapplication或Qapplication存在错误
#包括
#包括
int main()
{
QList列表;
列表相反,您可以使用:
请注意,C++11for
比Qtforeach
更有效,如下所示:
编辑:
正如Frank Osterfeld所评论的,您也可以使用:
CONFIG+=c++11
在Qt 5.4之后的.pro
文件中,如此处注释所示:您在配置中指定了无关键字
。您必须使用Q\u FOREACH
而不是FOREACH
。请参阅
也就是说,我将切换到基于C++11范围的for
,因为它在类型中没有逗号的问题
Q_FOREACH (QPair<int, int> p, pairList)
Q_FOREACH(QPair p,pairList)
不会编译,因为预处理器认为您正在尝试使用3个参数而不是2个参数调用宏。在我的例子中,Qt 5.2可以正常工作。您的Qt版本是什么?您也为每种语法尝试过C++11吗?5.5.1…我在网站上查看了Qt助手,O_O相同的事情…可能foreach
对于您的设置是禁用的。tRy <代码> QyPro AC/COD>。Yea,那个似乎也不起作用,它给了我一个错误:在C++ 98模式中不允许范围基“AF”循环。NVM…我错过了一步……它是有效的,但是……我想用FACEH来实践,这是一个惊喜,它不会在我的机器中工作。我会使用CONFIG+= C++ 11代替。“QMAKE_cxflags+=-std=c++11”可以使用typedef解决逗号问题,但是如果可以使用它,则最好使用基于范围的for。有趣的是,我收到了相同的错误,但我有正确的项目配置。不仅如此,foreach可以在Qt容器上工作,而且不能在包含int等基本类型的数组上工作
CONFIG+=c++11
Q_FOREACH (QPair<int, int> p, pairList)