繁体   English   中英

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

[英]How can I use a QMap<QString, QString>::const_iterator as a pointer?

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

错误在这一行:

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

在这里,您定义了一个指向 const_iterator指针 ,但是QMap::constBegin()仅返回const_iterator

只需删除* ,即可解决问题:

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

关键是,迭代器的行为已经类似于指针,因此不需要定义指针的常规语法。

这是一个很棒的迭代器教程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM