c++ - 为什么 std::uniform_int_distribution<IntType>::operator() 不是 const?

标签 c++ random constants c++-standard-library

据我了解,当用于提取随机数时,分布不应改变。例如,对于均匀分布,当我们使用它生成随机数时,它的最小值/最大值不应改变,那么为什么 operator()不是 const 吗?

最佳答案

虽然 min()max() 不会改变,但分布可能包含有助于生成下一个值的状态。如果 operator()const,则在不保证对象是线程安全的情况下无法修改此状态。提供这种保证可能会很昂贵,而且发行版应该是轻量级的。

关于c++ - 为什么 std::uniform_int_distribution<IntType>::operator() 不是 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58192469/

相关文章:

c++ - 引用派生类时基类的对象大小

Java Socket : I'm trying to generate random port numbers between a range, 但连接被拒绝,但是当我使用整数时,它可以工作

java - 数组改组不起作用

kotlin - 在 Kotlin 中创建全局常量的正确方法是什么?

访问成员 unordered_map 中的数据时,C++ const 方法在结构中编译错误

c++ - 如何在 Qt C++ 中向自定义控件添加属性?

c++ - 为什么使用 std::bind 出现参数错误

c++ - 我们应该避免变量的复数名称吗?

algorithm - 参数相关的 PRNG

c++ - 为什么在复制对象时忽略顶级常量?