【发布时间】:2020-09-17 18:09:03
【问题描述】:
我需要一个数组,其中每个成员都有 3 个相同类型的元素。我可以使用结构数组或二维数组。
// Array of structs:
struct point { double x, y, z; };
struct point path[20000];
// Now access z by
path[i].z
// 2-dimensional array:
double path[20000][3];
// Access z by
path[i][2]
哪种方法最有效?还是一样?
【问题讨论】:
-
效率真的很难抽象地谈论,因为不同的方法和不同的权衡。在这种情况下,它们大致相同,但命名为
x/y/z的字段读起来更好。另外,Point抽象在整体上真的很有用 -
我冒昧地建议,除非你想节省字节或微秒,否则你应该使用最有表现力的版本。毕竟,必须有人维护这些东西。