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 在以下场景下非常有用&