Я работаю с этим исходным кодом:
#include <string>
#include <vector>
#include <iostream>
#include <istream>
#include <ostream>
#include <iterator>
#include <sstream>
#include <algorithm>
int main()
{
std::string str = "The quick brown fox";
// construct a stream from the string
std::stringstream strstr(str);
// use stream iterators to copy the stream to the vector as whitespace separated strings
std::istream_iterator<std::string> it(strstr);
std::istream_iterator<std::string> end;
std::vector<std::string> results(it, end);
// send the vector to stdout.
std::ostream_iterator<std::string> oit(std::cout);
std::copy(results.begin(), results.end(), oit);
}
Чтобы вместо токенизации одной строки и помещения ее в вектор, он токенизирует группу строк, взятых из этого текстового файла, и помещает полученные слова в один вектор.
Text File:
Munroe states there is no particular meaning to the name and it is simply a four-letter word without a phonetic pronunciation, something he describes as "a treasured and carefully-guarded point in the space of four-character strings." The subjects of the comics themselves vary. Some are statements on life and love (some love strips are simply art with poetry), and some are mathematical or scientific in-jokes.
Пока мне ясно, что мне нужно использовать
while (getline(streamOfText, readTextLine)){}
чтобы запустить цикл.
Но я не думаю, что это сработает:
while (getline (streamOfText, readTextLine)) {
cout << readTextLine << endl; </p>
// создаем поток из строки
std :: stringstream strstr (readTextLine);
// использовать потоковые итераторы для копирования потока в вектор в виде строк, разделенных пробелами
std :: istream_iterator it (strstr);
std :: istream_iterator end;
std :: vector результаты (it, end);
/*HOw CAN I MAKE THIS INSIDE THE LOOP WITHOUT RE-DECLARING AND USING THE CONSTRUCTORS FOR THE ITERATORS AND VECTOR? */
// send the vector to stdout.
std::ostream_iterator<std::string> oit(std::cout);
std::copy(results.begin(), results.end(), oit);
}