Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
foreach在Qt中有什么问题?_Qt - Fatal编程技术网

foreach在Qt中有什么问题?

foreach在Qt中有什么问题?,qt,Qt,我都试过了。这应该很简单,但我很乐意知道我的foreach到底发生了什么。这根本没用 #include <QCoreApplication> //coreapplication or Qapplication the error is there #include <QList> #include <QDebug> int main() { QList<int> list;

我都试过了。这应该很简单,但我很乐意知道我的foreach到底发生了什么。这根本没用

    #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++11
for
比Qt
foreach
更有效,如下所示:


编辑: 正如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)