title image


Smiley d)
Hi



Eine weitere Alternative:



float *f = new float[n];

float *fend = f+n;

for (float *fp = f; fp<=fend; f++)

{

// viele lesezugriffe auf *fp

}

delete[] f;



Die könnte auch optimal sein. Theoretisch heißt

float x = f[i];

sowas wie

float x = *(f+i);

Es wird also theoretisch jeder Array-Zugriff zu einer Addition. Moderne Compiler sind aber so hoch optimierend, dass sie diese Addition nicht mehr jedes mal ausführen. Ein Testlauf mit allen 4 Schleifen-Arten, und in jeder Schleife so 1 Million Zugriffe, jeweils mit höchste Optimierung, und die Ausführungszeit messen: Ich vermute, es wird keinen messbaren Unterschied machen...



bye



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: