名前空間
変種
操作

std::forward_list::remove, remove_if

提供: cppreference.com
 
 
 
 
void remove( const T& value );
(C++11およびそれ以降)
(C++20以前)
size_type remove( const T& value );
(C++20およびそれ以降)
template< class UnaryPredicate >
void remove_if( UnaryPredicate p );
(C++11およびそれ以降)
(C++20以前)
template< class UnaryPredicate >
size_type remove_if( UnaryPredicate p );
(C++20およびそれ以降)

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

目次

[編集] 引数

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

述語関数のシグネチャは以下と同等なものであるべきです。

 bool pred(const Type &a);

シグネチャが const & を持つ必要はありませんが、関数は渡されたオブジェクトを変更してはなりません。
Typeforward_list<T,Allocator>::const_iterator 型のオブジェクトの逆参照から暗黙に変換可能なものでなければなりません。 ​

[編集] 戻り値

(なし)

(C++20以前)

削除された要素の数。

(C++20およびそれ以降)

[編集] 計算量

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

[編集]

#include <forward_list>
#include <iostream>
 
int main()
{
    std::forward_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]