最終更新日時: 2026年02月17日 23時22分33秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<list>

# std::list::remove

    void remove(const T& value);                // (1) C++03
    size_type remove(const T& value);           // (1) C++20
    constexpr size_type remove(const T& value); // (1) C++26

## 概要

指定された値の要素を全て削除する。

## 効果

コンテナの全ての要素に対する各イテレータ`i`において、`*i == value`による比較が`true`となる要素を削除する。
削除された要素に対するイテレータおよび参照は無効となる。

## 戻り値

- C++03 : なし
- C++20 : 削除された要素数を返す

## 例外

型`T`の等値比較が例外を投げなければ、この関数は例外を投げない

## 計算量

ちょうど`size()`回だけ等値比較を行う

## 例

    #include <iostream>
    #include <list>

    int main()
    {
      std::list<int> ls = {3, 1, 4, 1};

      ls.remove(1); // 値1の要素を全て削除

      for (int x : ls) {
        std::cout << x << std::endl;
      }
    }

### 出力

    3
    4

## 参照

- P0646R1 Improving the Return Value of Erase-Like Algorithms I: list/forward list
- P3372R3 constexpr containers and adaptors