是否可以在循環內聲明數組?由於某些原因,我不能在循環之前聲明它,因爲它的長度發生了變化。我想知道如果我可以重新聲明/刪除循環內的數組。我正在使用C++/CLI語言。在循環中聲明數組
Q
在循環中聲明數組
0
A
回答
0
原生C++數組必須在編譯時確定它們的大小(如果它們在堆棧中分配),所以如果要使用本地數組,則必須使用new
運算符分配它們。
不推薦的解決方案:
int rows = 1000;
int arr[] = new int[rows]; //new array with 1000 integers
int rows = 5;
delete arr; //don't forget to delete the previous allocation before re-sizing
int arr[] = new int[rows]; //new array with 5 integers
然而,這迫使你不斷地意識到分配和去分配。這就是爲什麼標準和微軟給你std::vector
和cli::array
。
託管方式:
如果你希望你的數組是託管堆上,用cli::array:
cli::array<int> ^arr= gcnew cli::array<int>(1000); //new array with 1000 integers
Array::Resize(arr, 5); //resize arr to 5 integers
非託管方式:
如果你希望你的陣列要放在非託管堆(本機C++)上,請使用std::vector
:
std::vector<int> arr(1000); //new array with 1000 integers
arr.resize(5); //resize array to 5 integers
0
您可以在每次迭代中使用Array::Resize方法(如eladidan所述);或者您可以使用List<>類,在每次迭代中添加項目,並最終調用List <> :: ToArray()以獲取要查找的數組。可能第一種方法會更有效率,但第二種方法更方便。
相關問題
- 1. 在聲明中對循環
- 2. 在Java中的for循環中聲明數組有多糟糕?
- 3. 聲明,並在循環
- 4. 聲明在for循環中使用的關聯數組
- 5. VB:在For循環中聲明變量
- 6. C#,NUnit聲明在循環中
- 7. 在循環中聲明的變量
- 8. 如果聲明在Foreach循環中
- 9. 在循環中聲明一個指針
- 10. 在循環之前或之內聲明數組
- 11. ES6在循環之前或循環中聲明變量
- 12. 循環XSD 1.1聲明
- 13. Java - Alternate While循環聲明
- 14. 在java中聲明數組
- 15. 在循環中聲明的數組無法在其外部識別
- 16. 殼for循環,在聲明停止
- 17. 在Java之前聲明清單循環
- 18. 聲明variablle在for循環內
- 19. OpenMP - for循環中的變量聲明
- 20. for循環中的C++聲明變量
- 21. 循環中的局部變量聲明
- 22. 如何聲明R中的for循環
- 23. 聲明中的循環問題
- 24. while循環中聲明變量javascript
- 25. 使用for循環聲明一個對象數組C++
- 26. 在xaml中聲明數組的數組
- 27. 爲什麼在循環內聲明似乎比在Java中聲明外部循環更快?
- 28. 在循環內或循環外聲明對象
- 29. for循環使用for循環中聲明的變量值?
- 30. 在循環中聲明的變量不存在於循環中c#
您能否向我們展示代碼。所以我們可以更好地理解問題 – asifsid88 2013-02-16 19:25:44
我不確定我是否理解你想知道的。你可以在循環中聲明(定義)一個數組,但是你將無法在循環之外的任何地方使用它。你也可以在循環外部聲明數組並創建它(例如,通過調用new ...),在這種情況下,只要聲明所在的範圍就可以使用它。 – 2013-02-16 19:30:16
到目前爲止,我的代碼大約有1000行。讓我以另一種形式提問我的問題。我可以更改聲明數組的行號嗎?我將在for循環之前聲明一個數組,並在每個循環中更改行數。 – 2013-02-16 19:37:33