C++中陣列可分為堆區的陣列和棧區的陣列,對於兩種陣列C++都沒有函式可以直接獲取陣列的元素的個數。一、堆區的陣列堆區的陣列是自己申請的,比如用new申請空間:int* arr = new int[10];堆區的陣列不能計算出包含元素個數。二、棧區的陣列棧區的陣列是系統自動分配的,如:[cpp] view plain copy
C++中陣列可分為堆區的陣列和棧區的陣列,對於兩種陣列C++都沒有函式可以直接獲取陣列的元素的個數。一、堆區的陣列堆區的陣列是自己申請的,比如用new申請空間:int* arr = new int[10];堆區的陣列不能計算出包含元素個數。二、棧區的陣列棧區的陣列是系統自動分配的,如:[cpp] view plain copy
int arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; 棧區的陣列可以透過以下兩種方法得出元素的個數:(1)[cpp] view plain copyint arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; auto diff = sizeof(arr)/sizeof(int); (2)這種方法需要所用編譯器支援C++11,14[cpp] view plain copyint arr[10] = { 1,2,3,4,5,6,7,8,9,0 }; int *pbeg = begin(arr); int *pend = end(arr); auto length = pend - pbeg;//陣列元素個數