Цикл for на основе диапазона для istringstream ⇐ C++
-
Anonymous
Цикл for на основе диапазона для istringstream
Я читаю строки из файла через std::getline, мне хотелось бы выполнить дополнительную обработку для каждого слова в строке. Я знаю, что для циклов for на основе диапазона требуется итератор с начальным элементом, поэтому я попытался использовать std::istream_iterator, но, по-видимому, этого недостаточно, что в этом плохого? Почему я не могу использовать это выражение в цикле for?
std::istringstream Words(line); for (const auto& s : (std::istream_iterator(words))) { // печатаем здесь каждое слово } Кроме того, я знаю, что могу решить эту проблему с помощью boost::range::istream_range, но как мне это сделать без повышения?
Я читаю строки из файла через std::getline, мне хотелось бы выполнить дополнительную обработку для каждого слова в строке. Я знаю, что для циклов for на основе диапазона требуется итератор с начальным элементом, поэтому я попытался использовать std::istream_iterator, но, по-видимому, этого недостаточно, что в этом плохого? Почему я не могу использовать это выражение в цикле for?
std::istringstream Words(line); for (const auto& s : (std::istream_iterator(words))) { // печатаем здесь каждое слово } Кроме того, я знаю, что могу решить эту проблему с помощью boost::range::istream_range, но как мне это сделать без повышения?
Мобильная версия