如何在const char*上执行std :: find

ins*_*its 2 c++

我试图通过使用nmap将文件映射到内存来提高我的纯文本阅读器性能.目前我有一个接收const char*和该数组长度的函数.我需要在这个char数组上执行搜索.

这就是我目前所拥有的

void parseVertex(
    const char * line, 
    unsigned int length, 
   std::vector<glm::vec3> & vertices)
{
    if(length == 0)
    {
        return;
    }

    char space = ' ';


    char * pos = std::find(line, line + length, space);
}
Run Code Online (Sandbox Code Playgroud)

std::find产生错误:类型为const char*的值不能用于初始化char*类型的实体

什么是正确的使用方法std::find

Naw*_*waz 9

std::find return-type取决于你传递给它的内容.

lineconst char*,所以std::find会回来const char*,不是char*.写这个:

const char * pos = std::find(line, line + length, space);
Run Code Online (Sandbox Code Playgroud)

同样,如果你通过char*,你会得到char*.

希望有所帮助.