Вставка QMap выдает только (ошибка) 0 для значения и ключа

#c #qt #qt5 #qmap

#c #qt #qt5 #qmap

Вопрос:

У меня возникла проблема с вставкой значений в QMap, и я не могу понять, почему. Я урезал свой код, чтобы просто заставить работать то, что я пытался сделать. Код приведен ниже:

 #include <QtCore/QCoreApplication>
#include <QString>
#include <QMap>


int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString string1 = "a";
    QString string2 = "b";
    QMap<QString,QString> myMap;

    myMap.insert(string1,string2);

    return a.exec();
}
 

Это приводит к следующей карте:
карта вывода

Почему это происходит? Что я делаю не так?

Комментарии:

1. Похоже, вы используете Visual Studio. Вы правильно установили плагин?

2. У меня не было никаких проблем с чем-либо еще, что я делал по QT, я также убедился, что Core выбрано в настройках проекта QT.

3. Это похоже на проблему с наблюдением переменной VS, поскольку у нее возникают проблемы с анализом содержимого переменной. Можете ли вы подтвердить (с помощью qDebug), что содержимое myMap действительно неверно?

4. вздох . Используя qDebug, он может получить доступ к ключу и дать мне значение. Я только что распечатал его на консоль. Можете ли вы ответить на вопрос выше, и я соглашусь?

Ответ №1:

Это похоже на проблему с наблюдением переменной VS, поскольку у нее возникают проблемы с анализом содержимого переменной.

Если вы проверите значения с myMap помощью qDebug(), вы, вероятно, обнаружите, что пары вставлены правильно, но VS неправильно интерпретирует содержимое.

Попробуйте удалить и переустановить свой плагин VS и, если проблема не устранена, зарегистрируйте ошибку в Qt, что их QMap скрипт синтаксического анализа в плагине VS может быть неисправен.