簡體   English   中英

QHash迭代器示例 - 不匹配運算符<<?

[英]QHash iterator example - no match for operator <<?

學習QT,我試圖從http://qt-project.org/doc/qt-4.8/qhash-iterator.html編譯第一個例子

我的代碼

#include <QHash>
#include <iostream>
#include <QString>

int main(int argc, char *argv[])
{
    QHash<QString, int> hash;
    hash.insert("January", 1);
    hash.insert("February", 2);
    hash.insert("December", 12);

    QHash<QString, int>::iterator i;
    for (i = hash.begin(); i != hash.end(); ++i)
        std::cout << i.key() << ": " << i.value() << std::endl;

}

沒有編譯。 我收到此錯誤:

main.cpp:14:錯誤:'std :: cout << i.QHash :: iterator :: key中的'operator <<'與Key = QString,T = int'不匹配

我不知道出了什么問題。 代碼幾乎是從文檔中復制粘貼的。 我錯過了什么嗎?

那是因為std::cout不適用於QString 嘗試使用QString::toStdString() ,或者也可以使用qDebug()而不是cout

有關詳細信息,請參閱此問答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM