标签: c++ random const c++-standard-library
据我了解,分配用于拉随机数时不应更改。例如,对于均匀分布,当我们使用它生成随机数时,其最小值/最大值不应改变,那么为什么operator()不是常量?
答案 0 :(得分:7)
虽然min()和max()不会改变,但分布可能包含有助于其生成下一个值的状态。如果operator()是const,则必须保证对象是线程安全的,否则无法修改此状态。提供这种保证可能是昂贵的,并且发行意味着重量轻。
min()
max()
operator()
const