我看到这个帖子:c++ - Why doesn't std::string_view have assign() and clear() methods? - Stack Overflow,因此string_view
不包含clear
函数。
但是在我的例子中,我有一个string_view
作为类成员变量,有时候,我想把它重置为空字符串。
sv = "";
这看起来不错,但我会看到其他的建议,谢谢!
我看到这个帖子:c++ - Why doesn't std::string_view have assign() and clear() methods? - Stack Overflow,因此string_view
不包含clear
函数。
但是在我的例子中,我有一个string_view
作为类成员变量,有时候,我想把它重置为空字符串。
sv = "";
这看起来不错,但我会看到其他的建议,谢谢!
2条答案
按热度按时间yzxexxkh1#
空""字符串仍然是长度为零的字符串。虽然这样做可以工作,但
data()
不会像返回真正为空的string_view
那样返回nullptr
。如果您确实想重置string_view
,最好为其分配一个空的string_view
:sv = string_view{};
.ymdaylpp2#
如果你想把string_view的大小设置为零,那么你所做的是可以的(代价是在二进制文件中的某个地方花费一个字节)。
您引用的帖子中有替代选项:
sv = {}
sv = sv.substr(0, 0)
还有另一种方法:
sv.remove_prefix(sv.size())