我正在寻找一种解决字符串流中各个元素的方法,例如使用数组arr[n]
进行处理。我意识到我可以简单地用字符串流std::string gets = ss.str()
分配一个字符串并处理该字符串,但这似乎很不直观。
答案 0 :(得分:4)
流元素是单个字符,并且具有位置。但是,流的读和写部分是分开的(istream
和ostream
),因此您不能轻易地操纵流的内容。而且,通常,流仅支持一次读/写,因此只能倒回一些流。
我正在尝试使用for循环按字母顺序对字符串流中的各个单词进行排序。
您可以将所有单词读入向量,然后对向量进行排序。例如:
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;
}