使用STL随机排列数组条目的简便方法?

4

我可以使用STL轻松地对int*数组进行排序,就像这样:

std::sort(myarray, myarray + size);

有没有一种同样简单的方法来随机化它?谢谢。

@Partial:它还需要更多的括号。:-P - C. K. Young
1
只需对其进行排序并称其为随机化!毕竟,这是“随机化”可能产生的一种结果。 - Roger Pate
@Chris Jester-Young:显然,它需要参数和一个分号在结尾!我写的只是对问题中所写内容的更正。 - Partial
2个回答

18

+1, 此外,如果你需要比默认的随机数生成器更高质量的内容,Boost.Random 有一些很好的随机数生成器可供使用。:-P - C. K. Young
谁说它没有使用高质量的 RNG 呢? :P 至少有了自己的 RNG,可以控制它,这对于单元测试之类的事情非常有用。 - Roger Pate

7

如果您想生成新的随机内容而不是对已有元素进行洗牌:

std::generate_n(myarray, size, &std::rand);

1
+1:我不认为这是提问者的意思,但你注意到“随机化”中的歧义很好。 - Steve Jessop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接