6

我想boost::random::discrete_distributionstd::vector<double>.

我的问题是,如果我用数组初始化它,就像在官方示例中一样:

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

然后它完美地工作。

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

你能告诉我boost::random::discrete_distribution<>用向量初始化 a 的正确方法是什么吗?

4

1 回答 1

10

该类似乎有一个带有迭代器范围的构造函数。这将与这样的向量一起使用:

std::vector<double> probs = ...;
boost::random::discrete_distribution<> dist(probs.begin(), probs.end());
于 2011-10-26T14:34:41.790 回答