PDA

Visualizza la versione completa : [C++] Ottimizzazione del programma


EinsteinBallmer
19-11-2010, 10:32
Scusate mi spiegate l'inefficenza del primo programma rispetto al secondo?



# include <iostream>
# include <fstream>
using namespace std;

int main(int narg, char * * args, char * * env)
{int *unidim = new int[1000000], **bidim = new int * [1000], i;
for(i=0; i < 1000; i++) bidim[i] = new int[1000];
if(narg < 2) return 1;
ifstream uno(args[1]);
if(!uno) return 2;
uno . read((char *)unidim, 1000000 * sizeof(int)),
uno . seekg(0, ios :: beg);
for(i=0; i < 1000; i++)
uno . read((char *)bidim[i], 1000 * sizeof(int));
uno . close();
cout << bidim[2][200] << ' ' << unidim[2200] << endl;
// si osservi che 2200 = 2 * 1000 + 200
}




# include <iostream>
# include <fstream>
using namespace std;

int main(int narg, char * * args, char * * env)
{int *unidim = new int[1000000], **bidim = new int * [1000], i;
//for(i=0; i < 1000; i++) bidim[i] = new int[1000];
if(narg < 2) return 1;
ifstream uno(args[1]);
if(!uno) return 2;
uno . read((char *)unidim, 1000000 * sizeof(int));
//uno . seekg(0, ios :: beg);
for(i=0; i < 1000; i++)
//uno . read((char *)bidim[i], 1000 * sizeof(int));
bidim[i] = unidim + i*1000;
uno . close();
cout << bidim[2][200] << ' ' << unidim[2200] << endl;
// si osservi che 2200 = 2 * 1000 + 200
}

LeleFT
19-11-2010, 12:07
Come evidenziato nel Regolamento interno (http://forum.html.it/forum/showthread.php?s=&threadid=973887) necessario seguire alcune regole nell'apertura di una nuova discussione.

1) Il linguaggio va specificato nel titolo della discussione
2) Il codice va postato indentato all'interno degli appositi tag CODE
3) E' l'autore della discussione a proporre una sua soluzione (o, in questo caso, un tentativo di spiegazione secondo le sue ipotesi), quindi chiedere al forum.

Sistemo il codice e aggiungo il linguaggio al titolo.

Ciao. :ciauz:

Loading