非標準::copy_if

Problem
コンテナから条件を満たす要素のみをコピーしたい場合は、どのようにすれば良いでしょうか?

Solution
非標準ながら広く知られたcopy_if()アルゴリズムを使用しましょう。
copy_if()に関しては、Bjarne Stroustrup氏がプログラミング言語C++第3版の中で
残念なことに、copy_if()は、どうしたわけか標準ライブラリが提供するアルゴリズムセットから抜け落ちてしまった(私の過失である)。
と書かれています。
それでは、あなたのライブラリにcopy_if()を加えてください。
template<class InputIterator, class OutputIterator, class Predicate>
inline OutputIterator copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate predicate)
{
  while (first != last) {
    if (predicate(*first)) {
      *result++ = *first;
    }
    ++first;
  }
  return result;
}

Notes
1. プログラミング言語C++第3版
プログラミング言語C++第3版 プログラミング言語C++第3版
Bjarne Stroustrup (1998/12)
アジソンウェスレイパブリッシャーズジャパン
この商品の詳細を見る

人気blogランキングへ にほんブログ村 IT技術ブログへ FC2ブログランキングへ

« 前頁へ移動する  | HOME |  次頁へ移動する »

ブログ内検索


このサイト内ウェブ全体
この検索は「緑のgoo」を利用しています

カテゴリー

未分類 (0)
C++ (24)
Books (11)
Bookmarks (1)

最近のエントリ

移植性の高いコードを書くためには (02/16)
ハッシュコンテナ - Part3 (01/10)
ハッシュコンテナ - Part2 (10/29)
日本語によるC++0xに関する記事 (10/23)
foreach (08/03)

Books

C++
プログラミング
デザインパターン
オブジェクト指向

RSSフィード

最新記事のRSS
最新コメントのRSS
最新トラックバックのRSS

アーカイブ

2008年02月 (1)
2008年01月 (1)
2007年10月 (2)
2007年08月 (1)
2007年07月 (2)
2007年06月 (1)
2007年05月 (2)
2007年04月 (1)
2007年03月 (2)
2007年02月 (2)
2007年01月 (3)
2006年12月 (4)
2006年11月 (8)
2006年10月 (6)

連絡先

email.png

Amazon