据我所知,当用于提取随机数时,分布不应更改。例如,对于均匀分布,当我们使用它生成随机数时,其最小值/最大值不应更改,那么为什么operator()不是const?
虽然min()
和max()
不会更改,但分布可能包含有助于其生成下一个值的状态。如果operator()
为const
,则必须确保对象是线程安全的,否则无法修改此状态。提供这种保证可能是昂贵的,并且发行意味着重量轻。
分发对象是伪随机数生成器。对象的状态绝对会随着生成的每个随机数而改变。两个连续的调用可能会给出不同的值,并且之所以存在差异,是因为每个调用都会改变对象的状态。