如何为 QListIterator 使用声明自定义 typedef

How to use declare custom typedef for QListIterator

我想使用 QListIterator,示例如下:https://doc.qt.io/archives/qt-4.8/qlistiterator.html

我已经为包含 QStringList 的列表声明了 typedef:

    typedef QList<QStringList> slstStringList;

我想为上面声明一个迭代器类型,我第一次尝试:

    typedef QListIterator<slstStringList> slstIterator;

但是这没有用,在查看我上面发布的 link 时,我将其更改为:

    typedef QListIterator<QStringList> slstIterator;

编译器也不喜欢这样,我得到:

    error: no matching function for call to 'QListIterator<QStringList>::QListIterator()'

我做错了什么?

这是我尝试同时使用两者的示例:

    for( slstIterator it(clsResetCfg::mslstWiFi); it.hasNext(); ) {
        QStringList slstDetails = it.next();
        ...
    }

上面的工作和编译正常,错误是在我没有指定静态列表成员的迭代器的静态初始化中,我现在将其更改为:

    slstStringList clsResetCfg::mslstWiFi;
    slstIterator clsResetCfg::msitWiFi(clsResetCfg::mslstWiFi);

现在世界上一切都好:)

typedef QListIterator<QStringList> slstIterator;

这是正确的,但是您需要在实例化后将对列表本身的引用传递给构造函数:

slsIterator it{myList};