C++ 封装c++;随机数发生器
我正在建造一些需要我去做的东西C++ 封装c++;随机数发生器,c++,random,encapsulation,C++,Random,Encapsulation,我正在建造一些需要我去做的东西 template<D> class DistributionAdapter { public: /** * @return number generated by the distribution function. */ virtual D operator()(RANDOM_NUMBER_GENERATOR& rng) = 0; }; 模板 类分布适配器{ 公众: /** *@分配函数生成的返回编号。
template<D>
class DistributionAdapter {
public:
/**
* @return number generated by the distribution function.
*/
virtual D operator()(RANDOM_NUMBER_GENERATOR& rng) = 0;
};
模板
类分布适配器{
公众:
/**
*@分配函数生成的返回编号。
*/
虚拟D运算符()(随机数生成器&rng)=0;
};
随机数发生器是表示C++中随机数生成器的一种,即STD::随机设备或伪随机数发生器。有人能告诉我该如何处理这个问题,我不知道C++中的随机数生成器是否有一个共同的基类型
< p>,你不太清楚你所要问的是什么,但是这里是一个相当简单的函数,它能在特定范围内返回均匀分布的随机整数。#include <random>
// random number generator from Stroustrup:
// http://www.stroustrup.com/C++11FAQ.html#std-random
int rand_int(int low, int high)
{
static std::default_random_engine re {};
using Dist = std::uniform_int_distribution<int>;
static Dist uid {};
return uid(re, Dist::param_type{low,high});
}
#包括
//Stroustrup中的随机数生成器:
// http://www.stroustrup.com/C++11FAQ.html#std random
整数和整数(整数低,整数高)
{
静态std::默认的随机引擎re{};
使用Dist=std::均匀分布;
静态区uid{};
返回uid(re,Dist::param_type{low,high});
}
本标准§26.5.1.3节描述了随机数发生器的要求
特别是,生成器必须支持函数调用运算符:
g()T返回闭合区间[g::min(),g::max()]中的值。
摊销常数
因此,虽然没有每个生成器共享的基类,但标准保证
操作符()
将出现在每个生成器中:您可以在函数中调用rng()
。那么我们在参数中强制使用哪种类型?这个解决方案不能回答这个问题。