我想用这样的 double[] 初始化 boost::random::discrete_distribution:
boost::random::discrete_distribution<>* distribution(double* _distr)
{
return new boost::random::discrete_distribution<>(_distr);
}
我知道我可以使用矢量或静态大小的表,但是有没有办法在不重写我的 _distr 的情况下克服它?
我想用这样的 double[] 初始化 boost::random::discrete_distribution:
boost::random::discrete_distribution<>* distribution(double* _distr)
{
return new boost::random::discrete_distribution<>(_distr);
}
我知道我可以使用矢量或静态大小的表,但是有没有办法在不重写我的 _distr 的情况下克服它?
discrete_distribution<>
不能接受一个简单的double*
参数,因为它无法知道数组有多长。
相反,它需要一个迭代器范围,但您必须指定数组中的元素数量:
boost::random::discrete_distribution<>* distribution(double const* distr,
std::ptrdiff_t count)
{
return new boost::random::discrete_distribution<>(distr, distr + count);
}
像往常一样,这在文档中非常清楚。