Ho provato 2 cose: (pseudo codice qui sotto)Inizializzazione vettoriale più lenta dell'array ... perché?
int arr[10000];
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
arr[j] = j;
}
}
e
vector<int> arr(10000);
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
arr[j] = j;
}
}
I corse sia i programmi e contati utilizzando il comando shell "tempo". Il programma 1 viene eseguito in 5 secondi, il programma 2 viene eseguito in 30 secondi. Ho eseguito entrambi i programmi con l'ottimizzazione del compilatore attivata ed entrambi i programmi sono stati eseguiti all'incirca nello stesso tempo (0,38s). Sono confuso da questi risultati. Qualcuno può spiegarmi perché questo sta accadendo?
Grazie!
Vuoi dire che hanno impiegato 5/30 secondi con le ottimizzazioni * disattivate *? – jalf
Ricorda che non sono esattamente equivalenti. Vector assegna di default l'heap, ma l'array è in pila. – GManNickG
Ciao, sì, era parte della mia domanda. Sono stato anche confuso da come hanno eseguito nello stesso tempo dopo l'ottimizzazione. – Aishwar