Я использую Qt 4.8.6 msvc 2010.
Я работаю над программным обеспечением (это сделано до Qt5, сейчас я поддерживаю). Я использовал карту:
QMap<QDateTime, quint32> dateTime
После того, как я вставлю некоторые данные в эту карту (например, с 5000 данных) и захочу получить значение указанного ключа, возвращаемое значение будет неправильным. Чтобы сделать это более понятным, предположим, что есть следующие 20 лучших элементов карты:
[0] Sun Dec 2 23:00:00 2018 0
key Sun Dec 2 23:00:00 2018 QDateTime
value 0 unsigned int
[1] Sun Dec 2 23:15:00 2018 1
key Sun Dec 2 23:15:00 2018 QDateTime
value 1 unsigned int
[2] Sun Dec 2 23:30:00 2018 2
key Sun Dec 2 23:30:00 2018 QDateTime
value 2 unsigned int
[3] Sun Dec 2 23:45:00 2018 3
key Sun Dec 2 23:45:00 2018 QDateTime
value 3 unsigned int
[4] (invalid) 4
key (invalid) QDateTime
value 4 unsigned int
[5] Mon Dec 3 00:15:00 2018 5
key Mon Dec 3 00:15:00 2018 QDateTime
value 5 unsigned int
[6] Mon Dec 3 00:30:00 2018 6
key Mon Dec 3 00:30:00 2018 QDateTime
value 6 unsigned int
[7] Mon Dec 3 00:45:00 2018 7
key Mon Dec 3 00:45:00 2018 QDateTime
value 7 unsigned int
[8] Mon Dec 3 01:00:00 2018 8
key Mon Dec 3 01:00:00 2018 QDateTime
value 8 unsigned int
[9] Mon Dec 3 01:15:00 2018 9
key Mon Dec 3 01:15:00 2018 QDateTime
value 9 unsigned int
[10] Mon Dec 3 01:30:00 2018 10
key Mon Dec 3 01:30:00 2018 QDateTime
value 10 unsigned int
[11] Mon Dec 3 01:45:00 2018 11
key Mon Dec 3 01:45:00 2018 QDateTime
value 11 unsigned int
[12] Mon Dec 3 02:00:00 2018 12
key Mon Dec 3 02:00:00 2018 QDateTime
value 12 unsigned int
[13] Mon Dec 3 02:15:00 2018 13
key Mon Dec 3 02:15:00 2018 QDateTime
value 13 unsigned int
[14] Mon Dec 3 02:30:00 2018 14
key Mon Dec 3 02:30:00 2018 QDateTime
value 14 unsigned int
[15] Mon Dec 3 02:45:00 2018 15
key Mon Dec 3 02:45:00 2018 QDateTime
value 15 unsigned int
[16] Mon Dec 3 03:00:00 2018 16
key Mon Dec 3 03:00:00 2018 QDateTime
value 16 unsigned int
[17] Mon Dec 3 03:15:00 2018 17
key Mon Dec 3 03:15:00 2018 QDateTime
value 17 unsigned int
[18] Mon Dec 3 03:30:00 2018 18
key Mon Dec 3 03:30:00 2018 QDateTime
value 18 unsigned int
[19] Mon Dec 3 03:45:00 2018 19
key Mon Dec 3 03:45:00 2018 QDateTime
value 19 unsigned int
[20] Mon Dec 3 04:00:00 2018 20
key Mon Dec 3 04:00:00 2018 QDateTime
value 20 unsigned int
....
Теперь, когда я пытаюсь получить значение, связанное с ключом «Солнце 2 декабря 23:00:00 2018», код возвращает мне 14! но правильное значение должно быть 0 ясно (на основе значений карты). Это код, который я использовал:
quint32 mapValue = dateTime.value(date); // date is "Sun Dec 2 23:00:00 2018"
Я пишу qt более 8 лет (но в основном Qt5), и это кажется действительно странным. Возможно, это неправильный способ определения карты, или это ошибка Qt4.8. Я буду признателен за любую помощь. Благодаря.
Edit:
После отладки я обнаружил, что значение, связанное с ключом # 14, равно значению, связанному с ключом # 0, согласно информации отладки!
Проверьте это:
На изображении выше два значения равны.