繁体   English   中英

划分std :: string而不复制

[英]Divide a std::string without copying

是否可以将std::string分成两个或多个子字符串而不进行复制,就像我们可以使用移动构造函数创建一个新的std::string而不复制一样?

你不能用std::string来做这件事。 但是,您可以使用C ++ 17中的std::string_view执行此操作。

例:

std::string str = "TheBigStr";
std::string_view p1 = std::string_view(str.data() + 3, 3);

字符串视图不复制数据,因此在使用视图时不应修改str

我不知道你使用的是哪个编译器,但至少微软的GSL有string_span,它本质上是一个string_view。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM