根据标准, std::random_device
按以下方式工作:
result_type operator()();
返回: 非确定性随机值,均匀分布在
min()
和max()
, 包括的。它是实现定义的 如何生成这些值。
并且有几种方法可以使用它。播种引擎:
std::mt19937 eng(std::random_device{}());
作为引擎本身:
std::uniform_int_distribution<> uid(1, 10);
std::cout << dist(dev);
因为它是实现定义的,所以听起来不像说的那么强大 std::seed_seq
要么 srand(time(nullptr))
。我更愿意将它用作种子,作为引擎还是根本不用?