将随机值分配给2d数组c++

assigning random value to 2d array c++

本文关键字:2d 数组 c++ 分配 随机      更新时间:2023-10-16

我有下面的函数,它生成随机数,我有一个二维数组,当它不超出数组大小时,我如何将函数生成的值分配给数组上的随机位置?

int size = 10;
int randm(){
random_device seeder;
mt19937 engine(seeder());
uniform_int_distribution<int> dist(0, 100);
return dist(engine);
}    
int** ary = new int*[size];
for(int i = 0; i < size; ++i)
ary[i] = new int[size];

要在随机位置分配随机数,必须生成另外两个随机数:一个用于第一个索引,一个用于第二个索引。

例如,使用示例代码,您可以执行以下操作:

// Create a random number generator in the range [0, size-1]
random_device seeder;
mt19937 engine(seeder());
uniform_int_distribution<int> dist(0, size - 1);
// Assign a random value in a random place
ary[dist(engine)][dist(engine)] = randm();