簡體   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