QHash — горячий, чтобы получить случайный ключ и значение

Я хочу получить случайную пару с номером n из моего QHash.

Теперь я делаю это так:

QHash<QString,QString>::iterator iterator = dictionary.begin();
iterator+= n;
question->setText(iterator.key());

Но это кажется просто смешным … Должен быть нормальный путь. Не могли бы вы мне помочь? Я прочитал всю страницу руководства по QHash уже

0

Решение

QHash не предлагает случайный выбор. Если вам приходится часто выполнять эту операцию, скопируйте (указатели на) keys() из хэш-таблицы в vector или же QVectorполучить случайный индекс в этом и использовать ключ, чтобы найти значение в QHash,

В зависимости от того, что еще вы используете QHash для, вы можете захотеть преобразовать его в вектор пар в какой-то момент и просто использовать его для случайного выбора.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]