作者:黄晓敏3023 | 2023-09-10 12:24
给定一组整数:
std::set itemInTest;
在这个集合中有大约4000个整数,我想循环100次,每次它可以从集合中随机选择100个不同的元素.此外,所有整数都是正数.
如何随机挑选其中一个?我知道stackoverflow中有很多答案,但有些太复杂了,有些并不是那么随意.
1> John Zwinck..:
首先,将您的项目放入向量中,因为您需要多次随机访问它们:
vector items(itemInTest.begin(), itemInTest.end());
然后,如果你需要100个项目并且不想两次选择相同的项目,你可能只是将整个事情洗牌:
std::random_device rd;
std::mt19937 gr(rd());
shuffle(items.begin(), items.end(), gr);
现在只需要前100个元素.如果你想再次使用它们:
set result(items.begin(), items.begin() + 100);
或者您可以使用任何您喜欢的输出容器类型 - 包括矢量.
您可以random_shuffle
再次执行该步骤,直到完成100次整体迭代.
如果你没有C++ 11,你可以使用std::random_shuffle()
而不是std::shuffle()
,注意随机性的质量可能会降低.然后你不需要std::mt19937
,只需:
random_shuffle(items.begin(), items.end());
令人遗憾的是,C++标准库没有部分洗牌.改变整个范围以选择m
推荐阅读
-
如何解决《计算特定年份的总周数-ISO8601-VBAAccess》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Swift函数范围-引用self(表示"selfastheenvelopingfunction")》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《WordPress,nginx代理和子目录:wp-login.php重定向到域》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《DjangoManyToMany字段的bulk_create的正确方法?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Erlang:检查两个值是否为零的最短方法?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《业务逻辑依赖于模型属性》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《C++将json转换为对象》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何以函数方式将字符串向量转换为整数向量?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《Intellij警告"串联中的StringBuffer.toString()"》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何使用nltk正则表达式模式来提取特定的短语块?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《UI-Grid:排序时如何禁用'1'?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《排序大文件(10G)》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《将请求范围的bean注入另一个bean》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《将字符串转换为Panel》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《CSS整页高度内容》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《_blank被阻止弹出我怎么能阻止这个?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《允许访问Apache中的隐藏目录(。)》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《检查时差是否小于45分钟并运行功能-AngularJS》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《SiriRemote.定向箭头》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《多语种玉模板?》经验,为你挑选了0个好方法。 ...
[详细]