Ładowanie pliku textowego do vector<string> z uwzględnieniem białych znaków

0

Witam,

mam kod:

ifstream plik("text.txt");
vector<string> *wektor = new vector<string>();
copy(istream_iterator<string>(file), istream_iterator<string>(), back_inserter(*wektor ));
plik.close();

który wczytuje mi plik tekstowy do vector<string>. Załozenie jest takie, że każda linia z pliku tekstowego ma trafić do nowego indexu w vectorze. Jeśli w liniach nie ma spacji, problemu nie ma. Jeśli trafi się spacja - linia jest wg niej dzielona na dwie osobne linie. Jak można wrzucić w miarę optymalnie cała zawartośc pliku tekstowego z podziałem na linie, do vectora?

Dodanie wcześniej plik >> std::noskipws powoduje zatrzymanie sie wczytywania pliku na spacji.

PS. Robienie w pętli getline(plik, linia) i potem wektor->push_back(linia) działa, ale czy nie jest mniej wydajne przy duzej ilości linii?

0

To czemu nie zrobić to tak:

   ifstream fin("text.txt");
   string content;
   getline(fin,content,'\0');

Masz cały plik w jednym napisie, po czym możesz go sobie podzielić lub nie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1