「std::list::remove if」の版間の差分
提供: C++入門
(ページの作成:「std::list::remove_if とは、条件式を指定して、std::listの要素を削除するテンプレート関数です。remove_ifにした関数として、[...」) |
(相違点なし)
|
2014年7月12日 (土) 20:22時点における最新版
std::list::remove_if とは、条件式を指定して、std::listの要素を削除するテンプレート関数です。remove_ifにした関数として、std::list::remove では、std::listの特定の要素のみが削除できます。
読み方
- std::list::remove_if
- えすてぃーでぃー りすと りむーぶ いふ
- std::list::remove
- えすてぃーでぃー りすと りむーぶ
目次
概要
コンテナから条件式にマッチしたすべての要素を削除します。
template <class Predicate> void remove_if (Predicate pred);
それらのオブジェクトのデストラクタは呼び出され、削除されたエレメント分、コンテナのサイズが小さくなります。
std::list::eraceでは、ポジション(イテレータを使ったとき)によって要素を削除します。この関数(std::list::remove)では、値によって要素を削除します。 この関数と似た std::list::remove があります。removeでは、指定した値にマッチする要素を削除します。
条件式を指定してコンテナから値を削除する例 list_remove_if1.cpp
ソースコード list_remove_if1.cpp
/* * list1.cpp * Copyright (C) 2014 kaoru <kaoru@bsd> */ #include <iostream> #include <list> using namespace std; // 奇数ならtrue bool is_odd(const int& v) { return (v%2)==1; } int main(int argc, char const* argv[]) { list<int> list1 = { 1,2,3,1,2,3,2,8,9 }; list1.remove_if(is_odd); for (auto x: list1) { cout << x << " "; } cout << endl; return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 list_remove_if1.cpp -o list_remove_if1
実行例
奇数は、すべて削除されました。
% ./list_remove_if1 2 2 2 8
関連項目
- 要素へのアクセス
- 変更
- 操作
- std::list::splice
- std::list::remove
- std::list::remove_if
- std::list::unique
- std::list::merge
- std::list::sort
- std::list::reverse