假设我们已经将一个文本文件的内容读入了一个stringstreamvia
std::ifstream file(filepath);
std::stringstream ss;
ss << file.rdbuf();
现在想逐行处理文件。这可以通过
for (std::string line; std::getline(ss, line);)
{
}
但是,考虑到ss在内部缓冲区中包含文件的全部内容(并且我们可以string通过 via获取此内容ss.str()),上面的代码效率非常低。对于文件的每一行,都会进行内存分配和复制操作。
是否有可能提出一个以 aline形式提供 s的解决方案std::string_view?(随意使用其他机制来加载整个文件;我不需要通过 . 访问它stringstream。)