划分std :: string而不复制

时间:2016-11-15 18:17:52

标签: c++ string

是否可以在不复制的情况下将std::string划分为两个或更多个子串,就像我们可以使用移动构造函数创建新的std::string而不复制一样?

2 个答案:

答案 0 :(得分:7)

您无法使用std::string执行此操作。但是,您可以使用C ++ 17中的std::string_view执行此操作。

示例:

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

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

答案 1 :(得分:1)

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

相关问题