std::uniform_real_distribution<RealType>::uniform_real_distribution
< cpp | numeric | random | uniform real distribution
uniform_real_distribution() : uniform_real_distribution(0.0) { } |
(1) | (C++11 起) |
explicit uniform_real_distribution( RealType a, RealType b = 1.0 ); |
(1) | (C++11 起) |
explicit uniform_real_distribution( const param_type& params ); |
(2) | (C++11 起) |
构造新的分布对象。第一版本以 a
和 b
为分布参数,第二版本以 params
为分布参数。
参数
a | - | a 分布参数(最小值) |
b | - | b 分布参数(最大值) |
params | - | 分布参数集 |
注意
要求 a ≤ b 且 b-a ≤ std::numeric_limits<RealType>::max() 。
若 a == b
,则后继调用 operator() 的不接受 param_type
对象的重载将导致未定义行为。
为创建闭区间 [a,b] 上的分布,可以 std::nextafter(b, std::numeric_limits<RealType>::max()) 为第二参数。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
DR | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P0935R0 | C++11 | 默认构造函数曾为 explicit | 使之为隐式 |