是否可以在<random>库中创建自定义发行版?我想制作一个行为(在界面上)的发行版

std::uniform_int_distribution
std::normal_distribution
...etc


我的意思是说我想做以下事情

std::random_device rd;
std::mt19937 gen(rd());

// Is something like the following possible?
my_custom_distribution dist;
dist(gen);


看起来发行版必须遵循RandomNumberDistribution概念。是否有可能创建一种新型发行版,使其与其他实用程序(即生成器和引擎)“很好地配合”?

最佳答案

最低要求是:

using result_type = ?;
result_type operator()();
static result_type min();
static result_type max();


其中,result_type是一些无符号整数型。这是“ UniformRandomBitGenerator”的概念。

大多数C ++ <random>发行版还满足“ RandomNumberEngine”。

有关更多详细信息,请参见cppreference或标准。

关于c++ - 创建与C++ 11随机 header 兼容的自定义发行版,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40554448/

10-11 19:01