C ++ <random>在一行中生成

时间:2019-02-25 21:20:25

标签: c++ random

此处是C ++的初学者。

我一直在使用以下函数在C ++中生成随机数:

double randDouble() {
    std::random_device rd;
    std::mt19937 mt(rd());
    std::uniform_real_distribution<double> dist(1.0, 10.0);
    return dist(mt);
}

我想知道为什么我无法像这样用一行文字(使用临时对象)来做到这一点:

double randDouble2() {
    return std::uniform_real_distribution<double>{1.0, 10.0}(std::default_random_engine(std::random_device{}()));
}

我想我在某处读到了有关默认构造函数的信息,这些默认构造函数对于这些类不是显式的,但是我真的不确定要搜索什么以确定我是否正确?

我还读到,这将是一种不好的做法,因为为每个呼叫创建一个新的random_device会非常昂贵,但是,我对为什么单线不可能 感兴趣。 >而不是实用-也就是说,我对一般案例创建匿名对象(不确定这是否正确)感兴趣。

0 个答案:

没有答案