如何使用std :: vector的初始化的boost ::随机:: discrete_distribution? [英] How to initialize boost::random::discrete_distribution using std::vector?

查看:702
本文介绍了如何使用std :: vector的初始化的boost ::随机:: discrete_distribution?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想初始化的boost ::随机:: discrete_distribution 的std ::矢量<双>

我的问题是,如果我有一个数组初始化它,就像在正式例如:

My problem is that if I initialize it with an array, like in the official example:

double probabilities[] = {
    0.5, 0.1, 0.1, 0.1, 0.1, 0.1
};
boost::random::discrete_distribution<> dist(probabilities);

那么完美。

但是,如果我用的std ::矢量初始化,那么它的行为一样,如果它只有一个元素的概率为1.0。

However if I initialize it with a std::vector, then it behaves like if it has only one element with probability 1.0.

你能告诉我什么是初始化的boost ::随机:: discrete_distribution&LT的正确方法;&GT; 有一个vector

Can you tell me what is the right way of initializing a boost::random::discrete_distribution<> with a vector?

推荐答案

类似乎有一个构造函数,<一个href=\"http://www.boost.org/doc/libs/1_47_0/doc/html/boost/random/discrete_distribution.html#boost.random.discrete_distributionconstruct-copy-destruct\">takes一个迭代器范围。这将有一个这样的载体中:

The class seems to have a constructor that takes an iterator range. This would be used with a vector like this:

std::vector<double> probs = ...;
boost::random::discrete_distribution<> dist(probs.begin(), probs.end());

这篇关于如何使用std :: vector的初始化的boost ::随机:: discrete_distribution?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆