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
互操作非常方便。