由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 搞不定,不得不问,一维数组跟二维数组的问题
相关主题
也问个二维数组的函数传递问题关于java的二维数组的问题
请教一个2维动态矩阵的问题在C/Fortran之间传递2维数组
请问C#里面,如何对N个数组设置循环访问?问个模板函数的问题
[合集] 一个vector的问题T[ ][ ] vs T **
Java数组怎么样能参数传递 (转载)问个技术问题: c++ 调试怎么显示二维数组?比如Visual Studio
问题请教再问两个C++问题
[合集] 一道C++的面试题,双黄包求答案 (转载)C++ virtual function 定义在 derived class 会怎么样?
perl二维数组一问数八皇后解法数目:python只要9行
相关话题的讨论汇总
话题: int话题: 数组话题: col话题: row话题: 二维
进入Programming版参与讨论
1 (共1页)
k******i
发帖数: 5774
1
关于内存和访问效率
int [M*N]

int [M][N]
占用内存一样?访问效率一样?不是吧?
还有在C跟JAVA,乃至C#里面的结论是一样的吗?
谢谢各位~
d****n
发帖数: 1637
2
不一样。
速度都查不多。
如果function declare 里面,有最大栈深度限制。

【在 k******i 的大作中提到】
: 关于内存和访问效率
: int [M*N]
: 跟
: int [M][N]
: 占用内存一样?访问效率一样?不是吧?
: 还有在C跟JAVA,乃至C#里面的结论是一样的吗?
: 谢谢各位~

t****t
发帖数: 6806
3
C/C++里, 占用内存一样, 访问效率一样.

【在 k******i 的大作中提到】
: 关于内存和访问效率
: int [M*N]
: 跟
: int [M][N]
: 占用内存一样?访问效率一样?不是吧?
: 还有在C跟JAVA,乃至C#里面的结论是一样的吗?
: 谢谢各位~

k******i
发帖数: 5774
4
3ks~

【在 t****t 的大作中提到】
: C/C++里, 占用内存一样, 访问效率一样.
r********n
发帖数: 7441
5
一回事,c++中 a[][]和a[]的实现都是居于 a 的指针运算

【在 k******i 的大作中提到】
: 关于内存和访问效率
: int [M*N]
: 跟
: int [M][N]
: 占用内存一样?访问效率一样?不是吧?
: 还有在C跟JAVA,乃至C#里面的结论是一样的吗?
: 谢谢各位~

d****i
发帖数: 4809
6
对,唯一不同的是如果作为函数的参数,那么在函数中dereference的时候,用二维数
组可以写成(更直观一些):
void addMatrix(int **a, int **b, int row, int col)
{
for(i=0;i for(j=0;j a[i][j] += b[i][j];
}
用一维数组可以写成:
void addMatrix(int *a, int *b, int row, int col)
{
for(i=0;i for(j=0;j a[i*row+j] += b[i*row+j];
}

【在 t****t 的大作中提到】
: C/C++里, 占用内存一样, 访问效率一样.
X****r
发帖数: 3557
7
你这个不是二维数组(数组的数组),而是指针数组(指向子数组首元素指针的数组)
,空间效率和时间效率上和二维数组并不等价。

【在 d****i 的大作中提到】
: 对,唯一不同的是如果作为函数的参数,那么在函数中dereference的时候,用二维数
: 组可以写成(更直观一些):
: void addMatrix(int **a, int **b, int row, int col)
: {
: for(i=0;i: for(j=0;j: a[i][j] += b[i][j];
: }
: 用一维数组可以写成:
: void addMatrix(int *a, int *b, int row, int col)

d****i
发帖数: 4809
8
说得对,就是这种方式比直接用二维数组作为参数要灵活,直接用二维数组作为形参的
话,就只能把第二维固定的二维数组来传递:
void addMatrix(int a[][NUM_COL], int b[][NUM_COL], int row)
{
for(i=0;i for(j=0;j a[i][j] += b[i][j];
}

【在 X****r 的大作中提到】
: 你这个不是二维数组(数组的数组),而是指针数组(指向子数组首元素指针的数组)
: ,空间效率和时间效率上和二维数组并不等价。

1 (共1页)
进入Programming版参与讨论
相关主题
数八皇后解法数目:python只要9行Java数组怎么样能参数传递 (转载)
请教C++程序中的Maze().exitMaze();问题请教
水木上python大坑啊: 疑Google员工把8w行Python项目用4w行Java重写了[合集] 一道C++的面试题,双黄包求答案 (转载)
用root跑程序更快perl二维数组一问
也问个二维数组的函数传递问题关于java的二维数组的问题
请教一个2维动态矩阵的问题在C/Fortran之间传递2维数组
请问C#里面,如何对N个数组设置循环访问?问个模板函数的问题
[合集] 一个vector的问题T[ ][ ] vs T **
相关话题的讨论汇总
话题: int话题: 数组话题: col话题: row话题: 二维