std::string_view的使用
时间: 2023-11-16 22:04:15 浏览: 164
Modern.Cplusplus.Programming.Cookbook (2017出版)
5星 · 资源好评率100%
std::string_view是C++17引入的一个轻量级的字符串视图类,用于对字符串进行非拷贝的读取操作。它提供了类似于std::string的接口,但没有实际拥有字符串的内存。
使用std::string_view非常简单,可以像使用std::string一样操作它。首先,你需要包含< string_view >头文件。
以下是使用std::string_view的一些常见用法:
1. 创建std::string_view对象:
```cpp
std::string_view view1("Hello"); // 从字符串字面值创建
std::string str = "World";
std::string_view view2(str); // 从std::string对象创建
```
2. 获取字符串的长度:
```cpp
std::string_view view("Hello");
std::size_t length = view.size(); // 获取字符串的长度
```
3. 访问字符串的元素:
```cpp
std::string_view view("Hello"); char firstChar = view[0]; // 访问第一个字符
```
4. 比较两个std::string_view对象:
```cpp
std::string_view view1("Hello");
std::string_view view2("World");
if (view1 == view2) {
// 两个字符串相等
} else if (view1 < view2) {
// view1小于view2
} else {
// view1大于view2
}
```
5. 子串操作:
```cpp
std::string_view view("Hello, World");
std::string_view substr = view.substr(7, 5); // 获取子串 "World"
```
需要注意的是,std::string_view并不拥有字符串的内存,因此确保原始字符串的生命周期长于std::string_view非常重要。此外,由于std::string_view不拥有内存,不能修改字符串的内容。
希望这些信息能对你有所帮助!如果你还有其他问题,请继续提问。
阅读全文