问题说明了一切。我想要这样的东西:
template <typename T>
void foo() {
std::cout << "A random number: " << UniformDistribution<T>.get();
}
至少适用于以下类型:数字(整数/ float 、有符号/无符号和实数/复数);枚举; bool 值。我知道 std::uniform_int_distribution和 std::uniform_real_distribution - 我想要更通用的模板。
最佳答案
uniform_int_distribution
和 uniform_real_distribution
行为不同;前者分布于 [a, b]
对于参数 a, b 而后者分布在 [a, b)
.此外,默认参数值不同; 0, numeric_limits<>::max()
对于前者和 0, 1
对于后者。
一旦确定了您感兴趣的行为,就可以自己编写;这样的分布成为标准的一部分是没有意义的。
关于c++ - 我可以获得适用于任何数字类型的模板化均匀分布生成器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20098486/