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

Is it possible to address individual elements in a stringstream in c++

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

流元素是独立的字符,它们有位置。但是,流的读取和写入部分是分开的(istream vs ostream),因此您无法轻松地操作流的内容。而且,一般来说,流支持reading/writing一次,只有部分流可以倒带。


I'm trying to sort individual words alphabetically in the string stream using a for loop.

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

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