C++ 中的字符串视图

String view in c++

本文关键字:视图 字符串 C++      更新时间:2023-10-16

我有兴趣查看字符串的一部分。我在下面有一个示例代码。实际上,我有兴趣查看字符串的子字符串,例如从索引 1 到 5 或 0 到 7 左右。我有.substr(),但我想避免复制。我该怎么做。

#include <iostream>
#include <string>
#include <experimental/string_view>
int main()
{
  std::string name;
  name = "Hello world";
  std::experimental::string_view name_v (name);
  std::cout << "string view, " << name_v << "!n";
}

只需使用 std::experimental::string_view::substr 它创建一个新string_view而不复制任何字符串本身:

      std::string name = "Hello world";
      std::experimental::string_view name_v (name);
      std::cout << "string view, " << name_v << "!n";
      auto sub_v = name_v.substr(1, 4); // creates a new string_view
      std::cout << "sub view, " << sub_v << 'n';