如何使用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();
^
答案 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。