C++17引入了std::string_view
作为一种非拥有字符串的视图,它可以与传统的字符串std::string
互操作。下面是一些常见的方法:
- 从
std::string
创建std::string_view
:
std::string str = "Hello, World!"; std::string_view view(str);
- 从
std::string_view
创建std::string
:
std::string_view view = "Hello, World!"; std::string str(view);
- 使用
std::string_view
来访问字符串的数据:
std::string str = "Hello, World!"; std::string_view view(str); for (size_t i = 0; i < view.size(); ++i) { std::cout << view[i]; }
- 使用
std::string_view
来做子字符串操作:
std::string str = "Hello, World!"; std::string_view view(str); std::string_view subview = view.substr(7, 5); // 获取从第7个字符开始的5个字符
总的来说,std::string_view
提供了一种更轻量级的字符串视图,可以在不拷贝字符串的情况下进行字符串操作,与传统的std::string
互操作非常方便。