Элементы потока являются отдельными символами и имеют позиции. Однако части потока для чтения и записи являются отдельными (istream
против ostream
), поэтому вы не можете легко манипулировать содержимым потока. И, как правило, потоки поддерживают чтение / запись один раз, только некоторые потоки могут быть перемотаны.
Я пытаюсь отсортировать отдельные слова в алфавитном порядке в потоке строки, используя цикл for.
Вы можете прочитать все слова в вектор, а затем отсортировать вектор. E.g.:
std::vector<std::string> read_words_and_sort(std::istream& s) {
std::vector<std::string> v(std::istream_iterator<std::string>{s},
std::istream_iterator<std::string>{});
std::sort(v.begin(), v.end());
return v;
}