我已经创建了向量的矢量或大小为n x n的2d数组。我想为每个位置分配一些n-2值给这个向量,例如grid [1] [2] = 3,并且值3不应该只在向量grid [1] [2]中与其他位置相同。应该有值3. 有人可以帮我用代码,也可以用srand函数来做这个吗? 由于将值分配给向量的向量
0
A
回答
0
假设你没有对生成的随机数的任何限制,在这里的是,填充,然后打印2D矢量阵列的例子:
int n = 3;
std::vector<int> usedNumbers(n*n);
std::vector<std::vector<int>> vec(n);
for (int i = 0; i < n; i++)
{
vec[i].resize(n);
for (int j = 0; j < n; j++)
{
int randNum;
while (std::find(usedNumbers.begin(), usedNumbers.end(), randNum = rand()) != usedNumbers.end()){}
usedNumbers.push_back(randNum);
vec[i][j] = randNum;
}
}
// print the 2 dimentional vector
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
std::cout << "i:" << i << " j:" << j << " vec: " << vec[i][j] << std::endl;
该参考代码还假定随机数在整个2D阵列中应该是唯一的。
您可以使用rand()函数来反映您想要的最大数量(例如,随机数x应该在0 < x < n之间),但更好的选择是使用random。
+0
感谢代码 – user3371989
+0
如果我的回答对您有帮助,请通过接受它(点击空的复选标记)来帮助我。谢谢 :) – Omer
相关问题
- 1. 将向量值函数输出分配给向量
- 2. 如何将向量分配给链表?
- 3. 将向量元素分配给CStringArray
- 4. 未分配C++向量值
- 5. C++向量中动态分配向量?
- 6. STL向量分配
- 7. 动态分配向量(或向量向量)
- 8. 如何分配给2d向量C++
- 9. 将向量的一部分分配给从进程
- 10. 将向量分解成子向量 - Java
- 11. 将现有向量中的随机值分配给循环内的增长向量
- 12. 在两个向量中的compatea值并将比较结果分配给R中的一个新向量
- 13. 向量向量,坏分区
- 14. 在一个向量中分配值
- 15. 将值赋给多维向量
- 16. R:将对象分配给循环中的向量
- 17. std :: memset_s分配器向量
- 18. 向量重新分配C++
- 19. 优化向量分配C++
- 20. C++向量分配问题
- 21. 向量C++内存分配
- 22. 将双向向量赋给结构? (Matlab)
- 23. 分配矢量另一个向量
- 24. 如何将文件名与空间分配给向量?
- 25. 基于另一个部分匹配向量的排序向量
- 26. R:将符合向量条件的行数分配给一个变量
- 27. 将输入值分配给双变量
- 28. 将CSV值分配给变量
- 29. XSLT:将值分配给全局变量
- 30. 将值分配给变量列表
你的问题不清楚。你想为你的2D数组中的每个*元素赋值n-2值吗? – unxnut
'srand()'只在有一个随机数时使用,并且实际上不用于分配数字(使用'rand()'),只是为了生成随机数生成器。 – IllusiveBrian
您是否想用从1到n * n的所有数字的随机排列来填充数组,因此从1到n * n的每个数字只能使用一次? – sj0h