【发布时间】:2021-02-21 12:27:46
【问题描述】:
我最近了解了 std::string_view 以及它如何比分配字符串快得多,因此我尝试在可能的情况下使用它来代替 std::string。
有没有办法优化逐行解析文件以使用 std::string_view 的循环?
这是我正在处理的代码。
std::string line;
// loop until we find the cabbage tag
while (std::getline(csd, line))
{
//DO STUFF
if (line.find("</STOP>") != std::string::npos)
break;
}
【问题讨论】:
-
您仍然需要
std::string来拥有数据(getline 只是从流中读取字符并需要将它们放在某处)。但是您可以简单地使用std::string_view lineView = line;创建一个视图,然后从那里进行解析。 -
对于
getline,无论如何您都需要std::string,然后您可以将string_view用于find,但这对我来说没有意义——它不会加快任何速度。
标签: c++ string c++17 string-view