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

前端之家收集整理的这篇文章主要介绍了c – 将char *分配给字符串而不复制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > initializing std::string from char* without copy6个
这是一个非常简单的问题,但我发现它很棘手.我想将char *视为std :: string,例如:
char *p = ...; // read a huge chuck from a file

    std::string s(p); // this is not what I want

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

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

谢谢!

解决方法

Is it possible somehow to avoid this,and “assign” the std::string content to a pre-existing address?

没有.

但是,您可以将其分配给std::string_view.继续,除了自己的内存之外,所有对std :: string的使用都应该被std :: string_view替换.

猜你在找的C&C++相关文章