【发布时间】:2015-02-05 02:02:26
【问题描述】:
获取随机数的典型现代方法如下:
std::random_device rd;
std::mt19937 engine{rd()};
std::uniform_int_distribution<> dis{-10,10};
someInt = dis(engine);
我认为std::random_device 对象仅用于为伪随机引擎播种一次。我认为因此我们可以这样写:
std::mt19937 engine{std::random_device{}()};
std::uniform_int_distribution<> dis{-10,10};
someInt = dis(engine);
后一种不会让std::random_device对象保持活动状态,并且具有减轻命名痛苦的优势。但是我发现网上很多例子都是用以前的版本。
这是必须的,还是有理由让std::random_device 对象保持活动状态并为其命名?
【问题讨论】: