[英]How to initialize boost::random::discrete_distribution using std::vector?
I would like to initialize boost::random::discrete_distribution
with an std::vector<double>
. 我想用
std::vector<double>
初始化boost::random::discrete_distribution
。
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);
then it works perfectly. 然后它完美地运作。
However if I initialize it with a std::vector
, then it behaves like if it has only one element with probability 1.0. 但是,如果我用
std::vector
初始化它,那么它的行为就像它只有一个概率为1.0的元素。
Can you tell me what is the right way of initializing a boost::random::discrete_distribution<>
with a vector? 你能告诉我用向量初始化
boost::random::discrete_distribution<>
的正确方法是什么?
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());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.