c – 如何使用std :: vector初始化boost :: random :: discrete_distribution?

前端之家收集整理的这篇文章主要介绍了c – 如何使用std :: vector初始化boost :: random :: discrete_distribution?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想用std :: vector< double>初始化boost :: random :: discrete_distribution.

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

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

然后它完美地运作.

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

你能告诉我初始化boost :: random :: discrete_distribution<>的正确方法吗?用矢量?

解决方法

该类似乎有一个构造函数 takes an iterator range.这将与这样的向量一起使用:
std::vector<double> probs = ...;
boost::random::discrete_distribution<> dist(probs.begin(),probs.end());

猜你在找的C&C++相关文章