将char*分配给字符串而不复制

sen*_*iwa 6 c++ arrays string copy

这是一个非常简单的问题,但我发现它很棘手.我想把char*它看作是一个std::string,例如:

    char *p = ...; // read a huge chuck from a file

    std::string s(p); // this is not what I want
Run Code Online (Sandbox Code Playgroud)

所以,如果我使用构造函数,我得到一个p的副本,这是浪费内存和时间.有可能以某种方式避免这种情况,并将内容" 分配 " std::string到预先存在的地址吗?

任何其他想法都非常受欢迎!

谢谢!

Kon*_*lph 13

有可能以某种方式避免这种情况,并将内容" 分配 " std::string到预先存在的地址吗?

没有.

但是,您可以将其分配给std::string_view.展望未来,std::string 除了自己的记忆之外的所有用途应该被替换std::string_view.