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

最佳答案

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



您可以将所有单词读入 vector ,然后对 vector 进行排序。例如。:

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;
}

关于c++ - 是否可以在C++中处理字符串流中的单个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53087890/

10-12 03:11