存储随机生成的变量C ++

时间:2014-06-19 03:56:28

标签: c++

我发现这个公式,并认为它是一个很好的用于获取0到1之间的随机生成的数字。但是,我需要将随机生成的数字与其他数字进行比较。如何在比较语句中存储以供使用。

double r() {
    random_device rd;
    mt19937 gen(rd());
    uniform_real_distribution<> dis(0, 1);
    cout << "dis gen is " << dis(gen) << endl;

//    cout << '\n';

    return 0;
}

1 个答案:

答案 0 :(得分:0)

您只需将dis(gen)返回的值存储在变量中:

auto value = dis(gen);

dis(gen)根据分发gen生成包含生成器dis的值。在这种情况下,它会返回一个均匀分布在0和1之间的随机实数。

如果您想明确返回的类型(而不是使用auto自动推断类型):

decltype(dis)::result_type value = dis(gen);

或完整:

uniform_real_distribution<>::result_type value = dis(gen);

这只是意味着如果更改分配,则需要更新两行。

如果你想要超显式并且给出result_type将会是的类型(在这种情况下是默认类型double):

double value = dis(gen);