学习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'
我不知道出了什么问题。代码几乎是从文档中复制粘贴的。 我在这里错过了什么吗?
答案 0 :(得分:3)
那是因为std::cout
不适用于QString
。尝试使用QString::toStdString()
,或者您也可以使用qDebug()
代替cout
有关详细信息,请参阅this Q&A。