当前位置: 代码迷 >> QT开发 >> 声明遍历器的小疑点
  详细解决方案

声明遍历器的小疑点

热度:211   发布时间:2016-04-25 02:58:50.0
声明遍历器的小问题
新手,刚学QT,碰到个小问题
在Creator自带教程上,关于遍历器有这个一段例程:
QList<float> list;
...
QListIterator<float> i(list);
while (i.hasNext())
    qDebug() << i.next();      

下面是我自己写在类声明里的:
    QList<float> flist;
    QListIterator<float> i(flist);     //编译错误 显示 flist is not a type


还有这一段:
    QStringList list;
    QListIterator<QString> i(QStringList list);
     .........
         if (i.hasPrevious())           //这里也显示错误 i does not have class type

其实上面这两段几乎都是从书上或者网上的例程里摘抄下来的,不知道为何产生报错。难道是版本原因?我用的QT5.2和5.4


------解决思路----------------------
   QList<float> flist;
    QListIterator<float> i(flist);     //编译错误 显示 flist is not a type
我这里可以编译通过.
QT4.8.5
QTCREATOR 3.1.0 OPENSOURCE
------解决思路----------------------
#include <QCoreApplication>
#include <QList>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList<float> floatList;
    floatList << 1.00
              << 2.00
              << 3.12
              <<4.40;

    QListIterator<float> i(floatList);
    int count=0;
    while(i.hasNext())
    {
        qDebug()<<"current " << count << " , item is "<<i.next();
        count++;
    }
    return a.exec();
}


运行结果:

------解决思路----------------------
引用:
感谢楼上几位的帮助 看来果然是版本的问题 现在网上QT4的安装包不太好找 官网上也找不到哪下 各位高手能分享下不?

我怎么丝毫没看出是版本的问题呢?

1,你给出的错误是你所有错误中的第一个么?排错一定要从第一个开始。
2.  你的第一段代码,之前包含必须的头文件了么 QList?
3.  你的第二段代码,存在明显的代码错误。
4. 五楼给的列子,你真是试过了么?
5. 你真的在官网上认真找了么? http://download.qt.io/archive/qt/
------解决思路----------------------
#include <QCoreApplication>
#include <qdebug.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    QList<float> floatList;
    floatList << 1.00
                 <<2.00
                 <<3.00
                 <<4.00;

    QListIterator<float>i(floatList);
    int count = 0;
    while(i.hasNext())
    {
        qDebug()<<"curren"<<count<<",Item is"<<i.next();
        count++;
    }
    return a.exec();
}

Q4.7.0 没问题,可以运行。
  相关解决方案