Ich habe mich gerade gefragt, ob dies erwartetes Verhalten in C++ ist. Der folgende Code bei etwa 0,001 ms ausgeführt wird:Langsames Schreiben in Array in C++
for(int l=0;l<100000;l++){
int total=0;
for(int i = 0; i < num_elements; i++)
{
total+=i;
}
}
jedoch, wenn die Ergebnisse auf ein Array geschrieben werden, nimmt die Zeit der Ausführung bis 15 ms bis:
int *values=(int*)malloc(sizeof(int)*100000);
for(int l=0;l<100000;l++){
int total=0;
for(unsigned int i = 0; i < num_elements; i++)
{
total+=i;
}
values[l]=total;
}
kann ich erkennen, dass an die Schreib Array braucht Zeit, aber ist die Zeit proportional?
Prost jeden
Ihre Frage sagt C, aber Ihre Tags sagen C++. Welches ist es? –
Entschuldigung, streng C++, aber wenn die int-Deklarationen außerhalb der for-Schleifen verschoben wurden dann C – Ljdawson
@Laurence - Nein, Ihr Code ist perfekt Standard in C99, und die meisten C89-Compiler akzeptieren die Syntax, die Sie verwenden. –