名前空間
変種
操作

std::list::remove, remove_if

提供: cppreference.com
< cpp‎ | container‎ | list
 
 
 
 
void remove( const T& value );
(C++20未満)
size_type remove( const T& value );
(C++20以上)
template< class UnaryPredicate >
void remove_if( UnaryPredicate p );
(C++20未満)
template< class UnaryPredicate >
size_type remove_if( UnaryPredicate p );
(C++20以上)

特定の条件を満たすすべての要素を削除します。 最初のバージョンは value と等しいすべての要素を削除します。 2番目のバージョンは述語 ptrue を返すすべての要素を削除します。

目次

[編集] 引数

value - 削除する要素の値
p - 要素が削除されるべき場合に ​true を返す単項述語。

p(v)T 型 (およびその const 修飾された型) のすべての引数 v について、その値カテゴリにかかわらず、 bool に変換可能でなければなりません。 また、 v を変更してはなりません。 そのため、引数の型 T& は許されません。 また、 T に対してムーブがコピーと同等でなければ T も許されません。 (C++11以上) ​​

[編集] 戻り値

(なし)

(C++20未満)

削除された要素の数。

(C++20以上)

[編集] 計算量

コンテナのサイズに比例。

[編集]

#include <list>
#include <iostream>
 
int main()
{
    std::list<int> l = { 1,100,2,3,10,1,11,-1,12 };
 
    l.remove(1); // remove both elements equal to 1
    l.remove_if([](int n){ return n > 10; }); // remove all elements greater than 10
 
    for (int n : l) {
        std::cout << n << ' '; 
    }
    std::cout << '\n';
}

出力:

2 3 10 -1

[編集] 関連項目

一定の基準を満たす要素を削除します
(関数テンプレート) [edit]