[c++17标准库特性之新增STL特性] --- std::string_view

1 std::string介绍

std::string_view 是 C++17 标准库中的一种新类型,它提供了对一个字符序列的非拥有式视图,该序列存储在 std::string 或字符数组中。它是 std::string 的一种轻量级替代方案,旨在避免字符串复制或分配的开销。

以下是一些 std::string_view 的重要特性:

非拥有式视图:std::string_view 不拥有底层的字符序列,它只是字符序列的引用。这意味着 std::string_view 的构造函数不会复制字符序列,而是指向它。也就是说,当底层字符序列发生改变时,std::string_view 的内容也会相应改变。

可隐式转换:std::string_view 可以隐式转换为 const char* 类型,这使得 std::string_view 可以作为 C 函数的参数进行调用。这也使得 std::string_view 在现有代码中的使用更加容易,无需进行显式类型转换。

适用于任何字符类型:std::string_view 并不仅限于 ASCII 字符,它可以适用于任何字符类型。这使得 std::string_view 更加灵活,可以适用于许多不同的应用场景。

操作与 std::string 相似:std::string_view 与 std::string 的接口非常相似,可以使用 [] 运算符、size() 函数等来操作字符序列。同时,由于 std::string_view 是一个轻量级对象,因此它的操作通常比 std::string 更快。

2 std::string_view适用场景

std::string_view 在以下场景下非常有用&

猜你喜欢

转载自blog.csdn.net/weixin_42445727/article/details/130046699