我想用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<>的正确方法吗?用矢量?
解决方法
@H_404_15@ 该类似乎有一个构造函数 takes an iterator range.这将与这样的向量一起使用:std::vector<double> probs = ...; boost::random::discrete_distribution<> dist(probs.begin(),probs.end());