导入
简介
让我们来看看本节将涵盖的内容。
自 C++11 引入移动语义以来,传递字符串的效率已大幅提升。然而,你仍可能产生大量临时的字符串副本。在 C++17 中,引入了一种新类型 string_view。它允许你创建一个指向连续字符序列的只读、非拥有型视图。你可以对这个视图进行操作并随意传递,而无需复制所引用的数据。
尽管如此,这一特性也带来一定代价:你需要格外小心,避免出现“悬空”视图的情况,而且这类视图通常不以空字符结尾。
在本节中,你将学习:
- 什么是
string_view? - 它为何能提升代码性能?
- 使用
string_view对象时存在哪些风险? - 什么是引用生命周期延长?这对
string_view意味着什么? - 如何利用
string_view使你的 API 更具通用性?
让我们从基础开始。