Я хочу получить случайную пару с номером n
из моего QHash.
Теперь я делаю это так:
QHash<QString,QString>::iterator iterator = dictionary.begin();
iterator+= n;
question->setText(iterator.key());
Но это кажется просто смешным … Должен быть нормальный путь. Не могли бы вы мне помочь? Я прочитал всю страницу руководства по QHash уже
QHash
не предлагает случайный выбор. Если вам приходится часто выполнять эту операцию, скопируйте (указатели на) keys()
из хэш-таблицы в vector
или же QVector
получить случайный индекс в этом и использовать ключ, чтобы найти значение в QHash
,
В зависимости от того, что еще вы используете QHash
для, вы можете захотеть преобразовать его в вектор пар в какой-то момент и просто использовать его для случайного выбора.
Других решений пока нет …