2012-03-18 89 views
0

什麼是適當的函數,顯示數組中有多少個?確定數組的大小

int a[10]; 
a[0] = 1; 
a[1] = 3; 

所以我想要的東西顯示size of a = 2

+2

該數組的大小爲10. – 2012-03-18 16:22:39

+0

在使用C++之後,使用std :: vector即可完成此操作。 – DumbCoder 2012-03-18 16:23:27

+0

你可以做sizeof(a)/ sizeof(int) – AlexDan 2012-03-18 16:26:11

回答

1

聽起來你需要一個動態調整大小的數組:

std::vector<int> a; 

a.push_back(1); 
a.push_back(3); 

std::cout << a.size(); // 2 
3

用原始數組無法做到這一點。

考慮一個容器類,而不是如std::vector

std::vector<int> a; 
a.push_back(1); 
a.push_back(3); 

std::cout << a.size() << "\n"; // Displays "2" 
1

該陣列具有10個元素。你恰好分配了其中兩個,但這並沒有改變遊戲區的大小。如果你想simething保持元素的軌道設置使用std::vector<int>push_back()

std::vector<int> array; 
array.push_back(1); 
array.push_back(3); 
int size = array.size(); 
0

油查爾斯沃思似乎是正確的。這是真的原因是,編譯時,不管數據是否包含數據,都會爲該數組預留(分配)一定量的內存。因此使用像sizeof(a)這樣的命令總是會得到相同的結果。它會返回爲你的數組分配的字節數量。在這種情況下,陣列是40個字節,因爲通常整數是4個字節長*陣列的長度(10)= 40。

儘管至少這是我讀的內容一段時間的教程,每個變量類型的分配大小似乎有所不同,從PC到PC(或OS到OS)。我知道,但是現在你至少知道你爲什麼不能用原始數組來做這件事。