c++ “清除”std::string_view的正确方法是什么?

t40tm48m  于 2023-02-01  发布在  其他
关注(0)|答案(2)|浏览(230)

我看到这个帖子:c++ - Why doesn't std::string_view have assign() and clear() methods? - Stack Overflow,因此string_view不包含clear函数。
但是在我的例子中,我有一个string_view作为类成员变量,有时候,我想把它重置为空字符串。

sv = "";

这看起来不错,但我会看到其他的建议,谢谢!

yzxexxkh

yzxexxkh1#

空""字符串仍然是长度为零的字符串。虽然这样做可以工作,但data()不会像返回真正为空的string_view那样返回nullptr。如果您确实想重置string_view,最好为其分配一个空的string_viewsv = string_view{};.

ymdaylpp

ymdaylpp2#

如果你想把string_view的大小设置为零,那么你所做的是可以的(代价是在二进制文件中的某个地方花费一个字节)。
您引用的帖子中有替代选项:

  • sv = {}
  • sv = sv.substr(0, 0)

还有另一种方法:

  • sv.remove_prefix(sv.size())

相关问题