QHash迭代器示例 - 不匹配运算符&lt; <! - ? - >

时间:2013-07-16 15:02:40

标签: c++ qt qhash

学习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:错误:不匹配'operator&lt;&lt;'   在'std :: cout&lt;&lt; i.QHash :: iterator :: key,Key = QString,T   = int'

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

1 个答案:

答案 0 :(得分:3)

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

有关详细信息,请参阅this Q&A