摘自:http://www.cnblogs.com/chengy024/archive/2008/07/01/1233075.html
今天,看到c++编程思想中模板一章,发现书中给出的随机数发生器类用一种很简单,易理解的方式,展示了无重复随机数的产生。而且,此类相当容易扩展,生成自己所需要的各类随机数,所以记录下来,以后可以方便复习。
下面是作者写的随机数发生器类:



































其主要思想是:应用bitset容器存储N位,N是要产生的随机数上限,默认设为100。在构造函数中,种下随机数种子。利用()操作符,产生随机数。每产生一个随机数,将bitset容器中相应的位设为1。如果产生的随机数对应的位已设定,则说明此随机数以产生过,则利用while循环,继续产生,直到产生未使用过的随机数。
此类易于改变,可以使其适合大多数需要随机数的场合。下面做个简单扩展,让其产生[MIN,MAX)之间的无重复随机数。



































下面是调用方式:














