c++和 Java 中多维数组的区别
多维数组:
多维数组是存储多个元素的数组的表格表示。这些维度可以是 1D 阵、2D-阵等。多维数组在 C++ 和 Java 中都有,但是它们的实现和一些属性是不同的。
在 C/C++ 中实现:
在 C++中,多维数组在内部被创建为一个巨大的线性数组。C++语法将这个线性内存块抽象成二维或三维行为,使程序员很容易理解。
示例:
维度为 2 行 x 3 列{{9,45,51},{5,25,6}}的 2D 数组实现如下(假设整数取 4 字节):
因此,特定索引处内部元素的内部公式如下:
arr[row index][colindex]= arr+(row index * noofcols * sizeof data type)+colindex * sizeof data type
假设基址为 3000 。然后arr[1][1]=3000+(1 * 3 * 4)+1 * 4 = 3000+12+4= 3016。
由于这样的实现,每行的列数必须相等,并且在声明时必须指定列大小,以便正确访问元素。
下面是多维数组在 C++中的实现:
C++
// C++ program for multidimention array
// implementation
#include <iostream>
using namespace std;
// Driver Code
int main()
{
// Create a 2d integer array,
// dimensions: 3rows X 5cols
int arr[3][5] = {
{ 23, 56, 34, 52, 63 },
{ 40, 20, 96, 43, 97 },
{ 75, 51, 10, 82, 43 }
};
// Traversing of 2D array
cout << "Printing entire 2d array: "
<< endl;
// Iterate over the rows
for (int i = 0; i < 3; i++) {
// Iterate over the cols
for (int j = 0; j < 5; j++) {
cout << "arr[" << i << "][" << j
<< "]:" << arr[i][j]
<< " ";
}
cout << endl;
}
return 0;
}
Output:
Printing entire 2d array:
arr[0][0]:23 arr[0][1]:56 arr[0][2]:34 arr[0][3]:52 arr[0][4]:63
arr[1][0]:40 arr[1][1]:20 arr[1][2]:96 arr[1][3]:43 arr[1][4]:97
arr[2][0]:75 arr[2][1]:51 arr[2][2]:10 arr[2][3]:82 arr[2][4]:43
版权属于:月萌API www.moonapi.com,转载请注明出处