[英]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.