如何将char*浅拷贝到std :: string?

Zac*_*Lee 6 c++ string

我想知道是否有可能浅拷贝char*std::string.

lub*_*bgr 13

如果你的目标是构建一个没有复制数据的std::string对象char*:不,这是不可能的.std::string拥有自己的资源,它不能引用另一个char*.这也是适当的构造函数采用a const char*而不是a的原因char*:它不会修改数据,而是复制数据.

在C++ 17中,你有std::string_view一个用于引用它不拥有的字符串(文字).请注意,此视图不是为了修改数据,因此它const char*再次构建,而不是char*.

  • 我忘记了`std :: string_view` - 非常好的建议. (2认同)