是否可以在C ++中处理字符串流中的单个元素

时间:2018-10-31 16:18:52

标签: c++ string stringstream

我正在寻找一种解决字符串流中各个元素的方法,例如使用数组arr[n]进行处理。我意识到我可以简单地用字符串流std::string gets = ss.str()分配一个字符串并处理该字符串,但这似乎很不直观。

1 个答案:

答案 0 :(得分:4)

流元素是单个字符,并且具有位置。但是,流的读和写部分是分开的(istreamostream),因此您不能轻易地操纵流的内容。而且,通常,流仅支持一次读/写,因此只能倒回一些流。


  

我正在尝试使用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;
}