Есть вот такой код
for(dim = 1; dim <= ui->dimBox->value() && ui->stopButton->isEnabled(); dim ++)
{
for(step = 1; step <= ui->speedBox->value(); step++){
//spin_motor();
current_step++;
}
//это просто генерируется значение
float megaval = (current_step*ui->deg_per_stepSpinBox->value()-100)*(current_step*ui->deg_per_stepSpinBox->value()-100)/40+50+(qrand() % 9 - 2);
data.insert(current_step, megaval);
QCoreApplication::processEvents();
}
//вот тут проверяем то, что только что внесли
QHashIterator<int, int> i(data);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << " " << i.value();
}
}
Так вот, если ui->speedBox->value() больше единицы, то когда вывожу данные из data, то данные какие-то левые. Сначало думал, что просто перемешиваются, а нет... если ui->speedBox->value() равно 1, то всё хорошо.
Вот данные ключ-значение, если равно 1
1 303
2 304
3 299
4 304
5 300
6 305
7 299
8 297
9 303
10 304
а вот если равно 11
88 287
55 294
22 302
110 292
77 290
44 299
11 302
99 293
66 298
33 295
я уже и непосредственно перед записью данные выводил для проверки, входят данные нормальные, выходит мусор.
думал может с циклом что-то не то, тыкал просто несколько раз под ряд current_step++; current_step++; в надежде на чудо ... и дальше мусор.
что я не так делаю?