java - 二维数组 : prefered way access items

标签 java c++ c coding-style

所以今晚我来到这里,想到了这个问题:

您最喜欢访问 m x n 矩阵的项目的方式是什么

通常的方法是对列使用索引 和行矩阵的另一个索引[i][j]

还有另一种方法,你的矩阵是一个长度为 m*n 的 vector 并且您使用 [i*n+j] 作为索引号访问项目

告诉我你最喜欢什么方法,还有其他方法吗 这适用于特定情况吗?

最佳答案

假设我们有一段 C(++) 代码:

 int x = 3;
 int y = 4;

 arr2d[x][y]   = 0xFF;
 arr1d[x*10+y] = 0xFF;

地点:

 unsigned char arr2d[10][10];
 unsigned char arr1d[10*10];

现在让我们看看它的编译版本(汇编;使用调试器):

enter image description here

正如您所看到的,无论您是否使用二维数组,访问数组元素时绝对没有任何损失或减速,因为这两种方法实际上是相同的。

关于java - 二维数组 : prefered way access items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7457877/

相关文章:

c - g_scanner_scope_add_symbol 中的 scope_id 参数代表什么?

java - Rhino 中抽象类的匿名实现

java - 如何使用WireMock模拟一个类?

java - 从 Java 到 SQL 的邻接矩阵

Java - 2 float 类型的数组 - 发现可能存在精度损失 : float required : int

c - 最快的位计数方法

c++ - 在 Qt 4.7 中,如何将弹出菜单添加到 QToolbar 按钮?

c++ - Linux 和 Windows 上的输出差异

c++ - 当包含方括号时,默认构造函数不会在模板类中编译 (g++4.6.1)

C编程,printf中有空格的正确方法吗?