c - 这两个数组声明有什么区别?
问题描述
我想知道这两个数组声明的区别,一个是这样定义的(double array[a][b][c][d]
),另一个是不同的(double array[a*b*c][d]
)
double weight4_5[LAYER4][LAYER5][LENGTH_KERNEL][LENGTH_KERNEL];
double weight5_6[LAYER5 * LENGTH_FEATURE5 * LENGTH_FEATURE5][OUTPUT];
如果我想用 for 循环将值加载到这两个数组中,我该怎么做?
解决方案
第一个是 4 维数组。
- 访问是由
weight4_5[i][j][k][l]
第二个是二维数组。它是一个扁平数组。
- 访问基本上是通过,但是需要根据4D原始数组
weight5_6[x][y]
做一些计算得到的值。x
您可以根据需要以多种方式组织它(例如,按行、按列等)一种方法是让
x= ((((i*LAYER5)+j)*LENGTH_FEATURE5)+k) y = l;
推荐阅读
- javascript - 使用reduce计算数组中每个元素的出现次数
- typescript - 为什么在用作函数参数之前需要将子类型分配给变量?
- php - Laravel:设置数据类型时使用逻辑运算符
- java - 如何在 spring 控制器中处理 db 特定异常
- python - How to write model in custom EVE route
- python - How can I add an if statement to my code?
- maven - 使用 Maven 过滤导入文件内容
- python - 在没有 root 权限的情况下安装 python-dev
- java - 如何映射两个视图之间的多对多关系?
- stata - Menu shortcuts in Unix-based systems