【发布时间】:2015-12-03 13:11:25
【问题描述】:
如何在 C++ 中修改std::poisson_distribution 的平均值?
有一个全局变量std::poisson_distribution<int> distribution(mean);。不知何故,它的平均值应该从输入(在一个函数内)定义,而它在另一个函数中使用。在声明和初始化它之后,我可以修改它的平均值吗?或者我可以将它声明为全局变量并在函数中初始化它(通过“调用”它的构造函数)?
我知道我可以将 mean 参数传递给实际调用 Poisson 生成器的函数。但是,由于调用 Poisson 生成器的函数都在一个循环中,这可能会导致多次创建生成器,或者可能使程序结构非常复杂。
std::poisson_distribution<int> distribution(mean);
std::default_random_engine rand_generator;
int flag = 1;
void main()
{
if (flag==1)
{
double poisson_mean;
cin >> poisson_mean;
// can I initialize poisson here using poisson_mean?
}
else
{ } // that is poisson is never used
for (int i=0; i<10; i++)
func_do_sth(); // Poisson might be used in this function.
}
【问题讨论】:
标签: c++ c++11 constructor stl scope