将const char *添加到string_view

问题描述

我有一个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

解决方法

std::string_view是对存储在内存中其他位置的现有char[]缓冲区或可访问范围为char的{​​{1}}的只读视图迭代器。您无法将新数据添加到std::string_view

对于您要尝试的操作,您需要使用std::string,例如:

std::string s = "hello";
s += " world";
std::string s(100,'\0');