Ho un grande vettore (10^9 elementi) di caratteri e mi chiedevo quale sia il modo più veloce per scrivere tale vettore su un file. Finora ho utilizzato il seguente codice:Il modo più veloce per scrivere file vettoriale STL di grandi dimensioni utilizzando STL
vector<char> vs;
// ... Fill vector with data
ofstream outfile("nanocube.txt", ios::out | ios::binary);
ostream_iterator<char> oi(outfile, '\0');
copy(vs.begin(), vs.end(), oi);
Per questo codice ci vogliono circa due minuti per scrivere tutti i dati su file. La vera domanda è: "Posso renderlo più veloce usando STL e come"?
C'è qualche altra elaborazione che si desidera eseguire mentre la scrittura avviene in background? In tal caso, utilizzare l'I/O sovrapposto passando vs.data() come buffer e vs.size() come numero di byte da scrivere come specificato da Charles Salvia. – Modicom