How to initialize boost :: random :: discrete_distribution using double [];

I would like to initialize boost :: random :: discrete_distribution with double [] like this:

boost::random::discrete_distribution<>* distribution(double* _distr)
    return new boost::random::discrete_distribution<>(_distr);


I know I can use a vector or statically sized table, but is there a way to overcome this without rewriting my _distr?


source to share

1 answer


cannot take a simple argument double*

because it will have no way of knowing how long the array will be.

Instead, it accepts a range of iterators, but you will need to specify the number of elements in your array:

boost::random::discrete_distribution<>* distribution(double const* distr,
                                                     std::ptrdiff_t count)
    return new boost::random::discrete_distribution<>(distr, distr + count);


As usual, this is done in the documentation .



All Articles