Изучая 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 с Key = QString, T
= int ‘
и я понятия не имею, что не так. Код в значительной степени скопирован из документации.
Я что-то здесь упускаю?
Это потому что std::cout
не работает с QString
, Попробуйте использовать QString::toStdString()
или вы также можете использовать qDebug()
вместо cout
Увидеть этот вопрос& для деталей.
Других решений пока нет …