解析文件时可以将 std::string_view 与 getline 一起使用吗?

Mic*_*ell 5 c++ string string-view c++17

我最近了解了 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;
    }
Run Code Online (Sandbox Code Playgroud)

Kos*_*tas 3

您正在寻找的是mmap,它允许您读取文件的数据而不复制它们。从 C++ 中的流读取将始终复制数据。当然,您可以使用std::string_view指向 所显示的数据mmap,并执行您喜欢的所有操作。