Как я могу случайно перебрать каждый элемент вектора без повторения - PullRequest
0 голосов
/ 17 октября 2019

Я пытался использовать rand() с srand() для генерации случайных номеров индексов, но я по-прежнему получаю повторяющиеся индексы, есть ли другой способ перебора всех элементов векторной покупки, получая индексы случайным образом, не влияя на порядок векторных элементов, которые я не могуrandom_shuffle() потому что случайное перемешивание меняет порядок моих векторных элементов, чей порядок критический.

1 Ответ

10 голосов
/ 17 октября 2019

Используйте std :: iota , чтобы заполнить вектор индексами. Затем используйте std :: shuffle , чтобы перетасовать индексный вектор. Используйте индексный вектор для итерации вашего основного вектора.

Реализация оставлена ​​на практике для OP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...