为什么要使用二维结构数组?
Why should you use a 2D array of structs?
我很好奇是否有使用二维结构数组的情况,例如 f.e.:
typedef struct
{
//member variables
}myStruct;
myStruct array2D[x][y];
//Uses cases of array2D[x][y]? Do we need them?
为什么要使用二维结构数组?
Why should you use a 2D array of structs?
一个定义的结构基本上只是一个类型,就像任何其他类型(当然,任何类型都不同于其他类型,私有数据类型和标准数据类型之间存在差异;更不用说对象之间内存分配的差异了那些类型),你可以用它来声明对象。
你也可以问:为什么要使用char
、int
或double
二维数组?
它不仅仅是一个结构自己的那种东西。
在代码中有一个清晰的 "structure" 取决于上下文和它的价值;所以以这种方式编写代码可以帮助您使代码更具可读性和清晰度,如果您需要大量的某种类型的对象,在这种情况下是一个结构。
也许您甚至想对一些对象进行分组 and/or 想区别对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式和单独地寻址每个维度的对象。
如评论中@buysbee所述:
一个明显的例子,在二维数组中存储结构对象是有益的,就是存储图片的像素。最好将"pixel"结构对象存储在二维数组中,因为这样可以模拟图片的自然构造方式。
我们可以补充更多的问题:为什么要用3D、4D。 5D ...... 10000000D 数组的东西。
项目中使用的数据结构取决于要解决的问题和选择的算法。
我很好奇是否有使用二维结构数组的情况,例如 f.e.:
typedef struct
{
//member variables
}myStruct;
myStruct array2D[x][y];
//Uses cases of array2D[x][y]? Do we need them?
为什么要使用二维结构数组?
Why should you use a 2D array of structs?
一个定义的结构基本上只是一个类型,就像任何其他类型(当然,任何类型都不同于其他类型,私有数据类型和标准数据类型之间存在差异;更不用说对象之间内存分配的差异了那些类型),你可以用它来声明对象。
你也可以问:为什么要使用char
、int
或double
二维数组?
它不仅仅是一个结构自己的那种东西。
在代码中有一个清晰的 "structure" 取决于上下文和它的价值;所以以这种方式编写代码可以帮助您使代码更具可读性和清晰度,如果您需要大量的某种类型的对象,在这种情况下是一个结构。
也许您甚至想对一些对象进行分组 and/or 想区别对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式和单独地寻址每个维度的对象。
如评论中@buysbee所述:
一个明显的例子,在二维数组中存储结构对象是有益的,就是存储图片的像素。最好将"pixel"结构对象存储在二维数组中,因为这样可以模拟图片的自然构造方式。
我们可以补充更多的问题:为什么要用3D、4D。 5D ...... 10000000D 数组的东西。
项目中使用的数据结构取决于要解决的问题和选择的算法。