language-agnostic - "true"多维数组的定义是什么,哪些语言支持它们?

标签 language-agnostic multidimensional-array jagged-arrays language-theory

我读过的大多数编程书籍都包含以下内容:

“X语言不支持真正的多维数组,但是您可以使用数组数组模拟(近似)它们。”

由于我的大部分经验是基于C的语言,即C++,Java,JavaScript,php等,因此我不确定什么是“真正的”多维数组。

真正的多维数组的定义是什么,什么语言支持它?
另外,请尽可能显示一个真实的多维数组示例。

最佳答案

C#支持真正的多维数组和可以替代的“锯齿状”数组(数组数组)。

// jagged array
string[][] jagged = new string[12][7];

// multidimensional array
string[,] multi = new string[12,7];

锯齿状数组通常被认为更好,因为它们可以处理多维数组可以做的所有事情,甚至可以做更多。在锯齿状数组中,每个子数组的大小都可以不同,而在多维数组中则不能。为此甚至有一个代码分析规则(http://msdn.microsoft.com/en-us/library/ms182277.aspx)

关于language-agnostic - "true"多维数组的定义是什么,哪些语言支持它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177984/

相关文章:

java - 包含所有元素的二维数组的深拷贝

c# - 将 KeyValuePair<int,string> 转换为 int[] 数组和 string[] 数组

C++11 迭代交错数组?

java - 我们如何在 O(n) 时间内实现 "substring-match"?

.net - 带双括号 ()() 的 VB.NET 数组

language-agnostic - 现代浮点实现是否能很好地处理精确单位(如金钱)?

python - 防止添加不同形状的数组

c# - 锯齿状数组类型属性

windows - 诊断一个集群软件的病态行为

regex - 匹配换行符 -\n 或\r\n?