我已經創建了向量的矢量或大小爲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