GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • cpprefjp - C++日本語リファレンス
  • GitHub Project

This view

  • Original page
  • New address

GeezerVison is showing cpprefjp.github.io — std::basic_string_view::subview - cpprefjp C++日本語リファレンス

  1. リファレンス
  2. string_view
  3. basic_string_view
  4. subview

最終更新日時: 2026年10月03日 22時31分04秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<string_view>

std::basic_string_view::subview(C++26)

constexpr basic_string_view<charT, traits>
  subview(size_type pos = 0,
          size_type n = npos) const;

概要

部分文字列を取得する。

本関数はsubstrと全く同じ動作である。std::stringとインターフェースを揃える目的で追加された。

戻り値

指定された位置posからn文字からなる部分文字列を構築して返す。

size() - posとnうち、小さい方をrlenとし、basic_string_view(data() + pos, rlen)を返す。

例外

pos > size()の場合、std::out_of_range例外を送出する。

例

#include <iostream>
#include <string_view>

int main()
{
  std::string_view sv = "This is a pen";

  std::string_view ret1 = sv.subview(5);    // 5番目から最後までの文字列を取得
  std::string_view ret2 = sv.subview(5, 2); // 5番目から2文字の文字列を取得

  std::cout << "1 : [" << ret1 << ']' << std::endl;
  std::cout << "2 : [" << ret2 << ']' << std::endl;

  // subviewはデータを切り取るのではなく、参照位置と参照サイズを変更するだけなので、
  // 生ポインタを介せば全体の文字列を復元することはできる。
  const char* ret3 = ret1.data() - 5;
  std::cout << "3 : [" << ret3 << ']' << std::endl;
}

出力

1 : [is a pen]
2 : [is]
3 : [This is a pen]

バージョン

言語

  • C++26

処理系

  • Clang: ??
  • GCC: ??
  • Visual C++: ??

参照

  • P3044R2 sub-string_view from string

関連項目

  • substr
  • basic_string::subview
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.