我尝试使用 rand()
和 srand()
来生成随机索引号,但我仍然得到重复的索引是否有任何其他方法可以迭代 a 的所有元素vector buy 随机获取索引而不影响 vector 元素的顺序
我不能 random_shuffle()
因为随机洗牌会改变我的 vector 元素的顺序,而这些元素的顺序很重要。
最佳答案
使用std::iota用索引填充 vector 。然后使用 std::shuffle打乱索引 vector 。使用索引 vector 迭代主 vector 。
作为实践留给 OP 实现。
关于c++ - 如何在不重复的情况下随机迭代 vector 的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58435663/