📜  一维数组和二维数组的区别

📅  最后修改于: 2021-09-06 11:30:40             🧑  作者: Mango

数组是一种数据结构,用于在连续位置存储具有相似数据类型的变量。数组的主要优点是随机访问和缓存友好性。数组主要有以下三种类型:

  • 一维 (1D) 阵列
  • 二维 (2D) 阵列
  • 多维数组

一维数组

  • 它是类似数据类型的变量的列表。
  • 它允许随机访问,所有元素都可以在索引的帮助下访问。
  • 数组的大小是固定的。
  • 对于动态大小的数组,可以在 C++ 中使用向量。
  • 一维数组的表示:

二维数组:

  • 它是相同数据类型的变量列表的列表。
  • 它还允许随机访问,所有元素都可以在索引的帮助下访问。
  • 它也可以看作是一维数组的集合。它也被称为矩阵。
  • 它的维数可以从 2 增加到 3 和 4,依此类推。
  • 它们都被称为多维数组。
  • 最常见的多维数组是二维数组。
  • 二维数组的表示:

差异表:

Basis One Dimension Array Two Dimension Array
Definition Store a single list of the element of a similar data type. Store a ‘list of lists’ of the element of a similar data type.
Representation Represent multiple data items as a list. Represent multiple data items as a table consisting of rows and columns.
Declaration

The declaration varies for different programing language:

  1. For C++,  
    datatype variable_name[row]
  2. For Java,  
    datatype [] variable_name= new dataype[row]

The declaration varies for different programing language:

  1. For C++, 
    datatype variable_name[row][column]
  2. For Java,  
    datatype [][] variable_name= new dataype[row][column]
Dimension One Two
Size(bytes) size of(datatype of the variable of the array) * size of the array size of(datatype of the variable of the array)* the number of rows* the number of columns.
Address calculation. Address of a[index] is equal to (base Address+ Size of each element of array * index).

Address of a[i[[j] can be calculated in two ways row-major and column-major

  1. Column Major: Base Address + Size of each element (number of rows(j-lower bound of the column)+(i-lower bound of the rows))
  2. Row Major: Base Address + Size of each element (number of columns(i-lower bound of the row)+(j-lower bound of the column))
Example

int arr[5];  //an array with one row and five columns will be created.

{a , b , c , d , e}

int arr[2][5];  //an array with two rows and five columns will be created.

               a  b  c  d  e

               f  g   h  i   j

数组的应用

  • 二维数组用于实现矩阵。
  • 数组可用于实现各种数据结构,如堆、栈、队列等。
  • 它们允许随机访问。
  • 它们对缓存友好。

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live