我遇到了一个很酷的 STL 示例,它使用 istream_iterators 将标准输入 (cin) 复制到 vector 。
vector<string> col1;
copy(istream_iterator<string>(cin), istream_iterator<string>(),
back_inserter(col));
我将如何执行类似于从文件流直接读取到容器中的操作?假设它是一个包含以下内容的简单文件:
“敏捷的棕色狐狸跳过了懒惰的狗。”
我希望每个单词在复制行之后成为 vector 中的一个单独元素。
最佳答案
打开文件成功后将cin
替换为文件流对象:
ifstream file("file.txt");
copy(istream_iterator<string>(file), istream_iterator<string>(),
back_inserter(col));
事实上,您可以将cin
替换为任何C++ 标准输入 流。
std::stringstream ss("The quick brown fox jumped over the lazy dogs.");
copy(istream_iterator<string>(ss), istream_iterator<string>(),
back_inserter(col));
明白了吗? col
将包含您传递给 std::stringstream
的字符串中的单词。
关于c++ - 如何使用 std::copy 直接从文件流读取到容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7152427/