【发布时间】:2021-02-16 11:40:45
【问题描述】:
我有一个string_view:
std::string_view view;
我怎样才能在其上附加 const char* 之类的内容?例如:
std::string_view view = "hello";
view += " world"; // Doesn't work
另外,如何创建具有指定大小的string_view?
比如:
std::string_view view(100); // Creates a string_view with an initial size of 100 bytes
【问题讨论】:
-
string_view只是一个视图。即实际对象在其他地方。所以你只能使用string_view'查看'。不能追加也不能设置大小。 -
如果 std::string_view 就像一个 char* ,那它有什么意义呢?
-
它就像一个带长度的 char*。它可以像普通容器一样使用,并且很容易传递函数(采用一个参数而不是两个参数,即 (char*, int))
-
是这样吗?
-
string_view被设计用于许多可以使用std::string的地方,但不需要复制任何数据。它是可迭代的,因此可以与其他接受输入迭代器的容器和算法一起使用。可以在string_view中轻松创建子视图,而无需复制任何数据。它比原始的char*+int对更容易使用。
标签: c++ string memory string-view