在下面的示例代码中,我分配了 struct Chunk 的一些实例。在 for 循环中,我然后遍历内存块并使用指针或引用访问不同的实例,并为它们分配一些随机数据。
但是哪个 for 循环会执行得最快呢?据我所知,引用循环将是最快的,因为它不需要取消引用并且可以直接访问内存中的实例。我有多错/对?
struct Chunk {
unsigned int a;
float b;
const char* c;
};
int main() {
Chunk* pData = new Chunk[8];
for( unsigned int i = 0; i < 8; ++i ) {
Chunk* p = &pData[i];
p->a = 1;
p->b = 1.0f;
p->c = "POINTERS";
}
for( unsigned int i = 0; i < 8; ++i ) {
Chunk& r = pData[i];
r.a = 1;
r.b = 1.0f;
r.c = "REFERENCES";
}
delete [] pData;
return 0;
}