如何使用QMap <qstring,qstring =“”> :: const_iterator作为指针?

时间:2017-03-25 17:42:20

标签: c++ qt iterator qmap

如何使用QMap<QString, QString>::const_iterator作为指针?

QMap<QString, QString>::const_iterator *i = map -> constBegin();
        while (i  !=  map -> constEnd()) {
            qDebug() << i -> key() << ": " << i -> value();

            i++;
        }
}

我收到错误:

/my_class.cpp:36: error: cannot convert ‘QMap<QString, QString>::const_iterator’ to ‘QMap<QString, QString>::const_iterator*’ in initialization
         QMap<QString, QString>::const_iterator *i = map -> constBegin();
                                                                                ^

1 个答案:

答案 0 :(得分:2)

错误在这一行:

QMap<QString, QString>::const_iterator *i = map -> constBegin();
                                       ~~

在这里,您要为const_iterator定义指针,但QMap::constBegin()只返回const_iterator

只需删除*,问题已解决:

QMap<QString, QString>::const_iterator i = map -> constBegin();

关键是,迭代器的行为与指针类似,因此不需要定义指针的传统语法。

这是迭代器的great tutorial