我需要创建一组 0 到 800 之间的随机数。问题是目前我需要快速执行此操作,并且每个数字仅返回一次。
我目前的做法是:
- 创建一个
std::vector
包含从 0 到 800 的数字
- 使用选择一个号码
numberVector[rand() % numberVector.length()]
- 从向量中删除这个数字
我必须经常这样做,而我目前的方法很慢。有什么办法可以加快这里的速度吗?
- 创建一个
std::vector
包含从 0 到 800 的数字
- 洗牌向量。
这应该有用:c++ - 如何洗牌 std::vector? - 堆栈溢出 https://stackoverflow.com/questions/6926433/how-to-shuffle-a-stdvector
- 从头到尾,将向量的元素一一取出。您不必删除该元素:只需存储最后使用的元素的索引即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)