簡體   English   中英

在C ++中使用有界數組的正確方法是什么?

[英]What's the correct way to work with bounded arrays in C++?

我試圖了解C ++中有限數組的工作方式。 我需要一個快速的長度方法來返回我的有界數組的大小。 在Java中,我會做類似的事情:

int[] array = new int[10];

System.out.println(array.length); // 10
System.out.println(array[5]); // 0

array[5] = 11;

System.out.prinltn(array[5]); // 11

如果可能的話,我想使用對象數組 (即實現數組功能的類)代替指針 我是否正確地說,使用對象數組而不是使用內存指針來處理數組感覺自然得多?

C ++有一個類std::array<type, size>基本上只是堆棧分配數組的包裝器。 C ++還有一個類std::vector<type> ,它是堆分配數組的包裝器(就像您在Java中所使用的那樣),但它也具有類似ArrayList的功能。

在您的情況下,編寫在邏輯和語義上與您相同的代碼是:

std::vector<int> array(10, 0); //EDIT: I added the second parameter because I don't think all implementations zero the memory when allocating it. This ensures that the memory is zeroed before use, like it would be in Java.
std::cout << array.size() << std::endl;
std::cout << array[5] << std::endl;
array[5] = 11;
std::cout << array[5] << std::endl;

不過,我不會命名變量array ,因為這可能會造成混淆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM