在{@ 3}}上用户@Cubbi提供的示例中,我一直难以生成随机整数。我已按照以下步骤设置程序:
rand_test.cpp
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::mt19937 eng(rd());
std::uniform_int_distribution<> distr(25, 63);
for(int n = 0; n < 40; ++n)
std::cout << distr(eng) << ' ';
}
...并使用g++ rand_test.cpp -std=c++11
进行编译
46 53 38 60 25 48 59 45 62 63 31 50 37 45 52 55 34 27 ...
编辑:问题在于MinGW无法正确编译std::random_device
。一种可行的替代方法是使用std::chrono
为生成器添加种子,如this question.