[英]Iterate over lines in std::string without copying it
我有一个大字符串,可以是 50-200 MB。 我想遍历字符串中的行。 我搜索的大多数解决方案都使用std::getline ,其中一些需要 Boost 库。 我不使用它们是因为,例如,它们要求我复制字符串以创建字符串流。
我真的需要使用它们吗? 为什么我不应该简单地使用std::string
的find
来搜索\\n
并读取子字符串? 这是一个糟糕的解决方案吗?
std::getline
或 Boost。string.find()
。 或者,您可以从源代码读取字符串并在找到分隔符时构建子字符串列表。此外,您可以在 C++17 中使用std::string_view 。 因此,您可以将整个输入放入一个字符串中,然后创建引用原始字符串的廉价子字符串对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.