1

学习 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 with Key = QString, T = int' 中的 'operator<<' 不匹配

我不知道出了什么问题。代码几乎是从文档中复制粘贴的。我在这里错过了什么吗?


那是因为std::cout不适用于QString. 尝试使用QString::toStdString(),或者您也可以使用qDebug()代替cout

有关详细信息,请参阅此问答

4

1 回答 1

3

那是因为std::cout不适用于QString. 尝试使用QString::toStdString(),或者您也可以使用qDebug()代替cout

有关详细信息,请参阅此问答

于 2013-07-16T15:22:36.697 回答