Mam mały problem z odczytem pliku w którym znajduje się 3147264 znaków, które wprowadzam do tablicy.
Samo wprowadzenie jest dość szybkie. Problem pojawia się kiedy chcę połączyć po 4 znaki w jednego stringa i wprowadzić je do wektora. Zanim wykona się ta pętla mija ok 20 minut co jest strasznie uciążliwe.
Jest na to jakiś szybszy sposób?
0
1
Zanim będziemy mogli cokolwiek powiedzieć i doradzić pokaż w jaki sposób to robisz.
1
Tablica "tab" jest wypełniona i zawiera 3147264 elementy.
stringstream a,b,c,d;
string temp;
for(int i=0; i<rozmiar; i+=4)
{
a<<int(tab[i]);
b<<int(tab[i+1]);
c<<int(tab[i+2]);
d<<int(tab[i+3]);
temp=a.str()+b.str()+c.str()+d.str();
a.str(""); b.str(""); c.str(""); d.str("");
wektor.push_back(temp);
}
1
for(int i=0; i<rozmiar; i+=4)
wektor.push_back(string(tab+i, 4));
1
for(int i=0;i<rozmiar;i+=4)
{
stringstream s;
for(int k=0;k<4;++k) s<<(int)tab[i++];
wektor.push_back(s.str());
}
tylko że skoro mówisz że to są takie rozmiary to znaczy że prawdopodobnie coś jest nie tak. Więc lepiej podaj więcej szczegółów - po kiego ci tak wielkie tablice na których robisz identyczne operacje?