以下のサンプルコードでは、structChunkのいくつかのインスタンスを割り当てています。次に、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;
}