如何使用std :: vector的初始化的boost ::随机:: discrete_distribution? [英] How to initialize boost::random::discrete_distribution using std::vector?
问题描述
我想初始化的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屋!