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

履歴 編集

function template
<inplace_vector>

# std::erase (非メンバ関数)(C++26)

    namespace std {
      template <class T, std::size_t N, class U = T>
      constexpr typename inplace_vector<T, N>::size_type
        erase(inplace_vector<T, N>& c, const U& value); // (1) C++26
    }

## 概要

指定した値をもつ要素とその分の領域を、コンテナから削除する。

## 効果

以下と等価：

    auto it = std::remove(c.begin(), c.end(), value);
    auto r = std::distance(it, c.end());
    c.erase(it, c.end());
    return r;

## 戻り値

削除した要素数を返す。

## 例

    #include <print>
    #include <inplace_vector>

    int main()
    {
      std::inplace_vector<int, 10> iv = {3, 1, 4, 1, 5};

      std::erase(iv, 1);

      for (int x : iv) {
        std::println("{}", x);
      }
    }

### 出力

    3
    4
    5

## バージョン

### 言語

- C++26

### 処理系

- Clang: 23 ✅
- GCC: 16 ✅
- Visual C++: 2026 Update 2 ❌

## 参照

- P0843R14 `inplace_vector`