我試圖做一個隨機數發生器,產生0和999隨機數生成C++在CMD
我做最初運行它從何處時間生成mt19937種子(之間的數字錯誤null),但發現這會導致該數字每秒更改一次,並且速度不夠快,因爲當我從for循環中再次調用它時。我使用code :: blocks來編譯我的代碼,它編譯時沒有錯誤,但是當我運行代碼時,我在cmd中發生錯誤。
Error: terminate called after throwing an instance of 'std::runtime_error'
what(): random_device::random_device(const std::string&)
我在做可怕的錯誤嗎?
#include <iostream>
#include <random>
using namespace std;
//Random Number Generator
int numGen() {
//Random Number Generator
random_device rd;
mt19937 mt(rd());
uniform_int_distribution<int> dist(0, 999);
for (int I = 0; I < 6; i++) {
cout <<dist(mt) << " ";
}
cout <<endl;
}
UPDATE:
我現在已經運行從Visual Studio完全相同的代碼,並沒有錯誤。
我已經簽了一個網站,編譯並執行你的代碼,它運行沒有問題 – user3341479
代碼::塊是用C++ 11 以下選項兼容也被激活: 「有G ++遵循C + +11 ISO C++語言標準[-std = C++ 11]「 – user3341479
爲什麼你每次都重播? – RyanP