[英]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.