我正在嘗試新的方法來生成隨機數並將它們填充到數組中。到目前爲止我已經完成了。C++ - 如何使用<random>來填充std :: array
template<size_t SIZE>
void fill_array(array<int, SIZE>& a)
{
default_random_engine dre;
uniform_int_distribution<int> uid1(0, 1000);
for (int i = 0; i < a.size(); i++)
{
a[i] = uid1(dre);
}
}
我的主要文件是非常簡單的,看起來像這樣
array<int, 10> a;
Array3 a1;
a1.fill_array(a);
a1.print_array(a);
我以爲我設法得到的隨機數,每次我調試,但我得到了相同的編號每次。奇怪的是,有時我會得到不同的數字,但是這是我必須多次調試以獲得新數字的相同情況。我做錯了什麼?
如果您想要非確定性結果,請使用'std :: random_device' – doug
...並初始化例如'std :: mt19937',你在'std :: uniform_int_distribution'中使用。 – dani
此外,您不需要編寫一個循環來填充「std :: array」或任何序列容器。看[std :: generate](http://en.cppreference.com/w/cpp/algorithm/generate) – PaulMcKenzie