avatar
如何使用这个template?# Programming - 葵花宝典
f*n
1
boost里有这么一个生成正态分布随机数的template.
template
class normal_distribution
{
public:
typedef RealType input_type;
typedef RealType result_type;
explicit normal_distribution(const result_type& mean = 0,
const result_type& sigma = 1);
RealType mean() const;
RealType sigma() const;
void reset();
template
result_type operator()(UniformRandomNumberGenerator& urng);
};
如果想把UniformRandomNumberGenerator指定为lagged_fibon
avatar
f*n
2
主要问题是这个class template有个member是function template,而且template
parameters在两个位置出现,哪位同学给解释一下?多谢
avatar
c*e
3
there is a thing for function template called template parameter deduction

【在 f****n 的大作中提到】
: 主要问题是这个class template有个member是function template,而且template
: parameters在两个位置出现,哪位同学给解释一下?多谢

avatar
t*t
4
从prototype看这个class设计思想是这样.
class的参数明显是数据类型,多半不是float就是double
那个operator()的参数是uniform generator class,因为高斯随机数通常是由均匀分布
的随机数变换而来,而uniform的质量有不一样,所以为灵活起见要求你提供一个.
用的时候这样写
normal_distribution n_prng(mean, sigma);
lagged_fibonacci607 u_prng( ... );
double x=n_prng(u_prng);

【在 f****n 的大作中提到】
: boost里有这么一个生成正态分布随机数的template.
: template
: class normal_distribution
: {
: public:
: typedef RealType input_type;
: typedef RealType result_type;
: explicit normal_distribution(const result_type& mean = 0,
: const result_type& sigma = 1);
: RealType mean() const;

avatar
f*n
5
你的解释很清楚,多谢帮助
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。