c++ - 用不重复的随机数填充二维数组

标签 c++ arrays multidimensional-array random

我目前正在尝试用 1-16 之间的 16 个值填充一个 2D 数组。我想用不重复的随机值填充数组。

例如,如果我有一个数组 int array[4][4] 我将如何通过循环填充数组,同时检查以确保没有放置另一个相同的随机值到数组中的另一个位置?

最佳答案

int array[4][4];
int* p = &array[0][0];
std::iota(p, p+16, 1);

std::random_device r;
std::default_random_engine g(r());
std::shuffle(p, p+16, g);

关于c++ - 用不重复的随机数填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060459/

相关文章:

c++ - Dtruss 没有显示 mmap/sbrk 调用?

c++ - 我可以创建一个包含多个类型声明的 for 循环吗?

c++ - 为什么不专门化函数模板呢? (问答)

java - 将 4D 数组保存到文件时出现问题

php - Cakephp:无法将字符串偏移量用作数组

c - 文件路径数组中只有一个元素有效 - C

java - 可变数量的二维数组合并为一个大数组

c# - 为什么我的二进制文件可以在 Windows 8 上运行,但不能在 Windows 7 上运行?

java - 如何通过JNI设置Java对象的多维数组字段

c++ - CPP : Use map for multidimensionality?