最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function
<string>

# std::basic_string::contains(C++23)

    constexpr bool contains(basic_string_view<charT, traits> x) const noexcept; // (1) C++23
    constexpr bool contains(charT x) const noexcept;                            // (2) C++23
    constexpr bool contains(const charT* x) const;                              // (3) C++23

## 概要

指定の文字・文字列が含まれているかを判定する。

- (1) : `*this`が保持する文字列に、`x`が参照する文字列範囲を含んでいるかを判定する
- (2) : `*this`が保持する文字列に、文字`x`が含まれているかを判定する
- (3) : `*this`が保持する文字列に、文字列`x`が含まれているかを判定する

この関数は、`find(x) != npos`の代わりに使用できる。

## 戻り値

- 以下と等価である

      return basic_string_view<charT, traits>(data(), size()).contains(x);

## 例外

- (1), (2) : 投げない

## 例

    #include <cassert>
    #include <string>
    #include <string_view>

    int main() {
      std::string s = "Hello World";

      // (1)
      {
        std::string_view target = "rl";
        assert(s.contains(target));
      }

      // (2)
      {
        assert(s.contains('W'));
      }

      // (3)
      {
        assert(s.contains("rl"));
      }
    }

### 出力

## バージョン

### 言語

- C++23

### 処理系

- Clang: 12.0 ✅
- GCC: 11 ✅
- Visual C++: 2022 ✅

## 参照

- P1679R3 string contains function