【C++】《C++ 17 入门经典》读书笔记 17 ---- 字符串视图 std::string_view

一、字符串视图 std::string_view

std::string_view  这是 C++17 标准库新增的 string_view 头文件中定义的一个类型。

此类型的值的行为非常类似于 const std::string 类型的值(注意有 const),但有一个重要区别:任何时候都不能通过它们的公共接口修改它们封装的字符串。也就是说,在某种程度上, string_view 具有固有的常量特性。

可以查看(view)但不能修改 string_view 的字符。有趣的是,这种局限暗示着这些对象与 std::string 不同,不需要自己操作字符数组的副本。相反,它们只需要指向某个实际的 std::string 对象、某个字符串字面量或者基他任何字符数组中存储的任何字符序列即可。

由于不涉及复制整个字符数组,初始化和复制 string_view 的开销很低。

因此,在隐式或显式创建时 std::string 会复制字符,而 string_view 则不会。

二、提示:

总是为输入参数使用 std::string_view 而不是 const std::string&,虽然使用 const std::string_view& 也没有问题,但那样还不如按按值传送 std::string_view, 因为复制这些对象的成本很低。

 


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值