C++03 の標準ライブラリでは copy_if アルゴリズムは用意されていませんが、 remove_copy_if で代用することはできます remove_copy_if は、 copy_if の反対の動作である「述語の条件を満たさない要素をコピー」を行うので remove_if の引数である述語に not1 を適用することで結果を逆にしてあげればいいのです #include <iterator> #include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; struct is_even : public unary_function<int, bool> { bool operator()(int value) const { return va