c++中二維陣列與二維向量的長度
阿新 • • 發佈:2019-01-03
對於一個二維陣列:
int mm[3][5] = { { 1,2,3,4,5 },{ 5,6,7,8,9 },{ 9,10,11,12,13 } };
int toatlnums = sizeof(mm) / sizeof(int); //元素總個數
int cols = sizeof(mm[0]) / sizeof(int); //行
int raws = totalnums / cols; //列
對於一個二維向量:
vector<vector<int>> matrix = { {1,2,3,4,5},{5,6,7,8,9},{9,10,11,12,13} }; int raws = matrix.size(); //行 int cols = matrix[0].size(): //列 int totalnums = raws * cols; //元素總個數
而對於向量:
sizeof(matrix) ;
sizeof(matrix[0]);
sizeof(vector<vector<int>>);
sizeof(vector<int>);
sizeof(vector<double>);
以上sizeof的結果都是16!
所以sizeof(vector<type>)的大小,跟容器裡面存放多少資料無關,也與存放的資料型別無關,它是在編譯期確定的一個值,僅跟具體的編譯器有關。