说我有3个值:
int age;
int girth;
int length;
在多维数组中存储和循环这些值或者使用这3个成员变量声明一个类然后用这个类的对象填充数组会更有效吗?
答案 0 :(得分:0)
如果您想将每个维度都解释为您的一个值,那么小数组大小就可以了。尽管如此,如果您想要访问第一个维度的第一个元素,然后是第二个维度和第三个维度的第一个元素,那么当您将不再使用缓存时,您可能会遇到性能大幅下降的问题。这是由于多维数组和CPU缓存的内存布局。
如果您将它作为结构或者所有3个值都被解释为数组的一个维度,并且如果您将继续以遍历方式访问该数组(例如,不跳转),那么您可能会得到尽可能好的表现。
所以,它应该是这样的:
struct entry
{
int age;
int girth;
int length;
}
std::array<entry, /*size*/> entries;