copy_if
がC++にないのは非常に面倒です。 C++であれば誰でも知っていますか0x?は、C++ 0xにcopy_ifを追加していますか?
7
A
答えて
7
5
、それはremove_copy_if()
を使用して、独自のcopy_if()
を作ることは非常に難しいことではありません:not1()
を使用して
#include <functional>
struct my_predicate : std::unary_function<my_arg_type, bool> {
bool operator()(my_arg_type const& x) const { ... }
};
// To perform "copy_if(x, y, z, my_predicate())", write:
remove_copy_if(x, y, z, std::not1(my_predicate()));
は、引数の型を識別し、ネストされたタイプ、argument_type
を供給するために、あなたの述語クラスが必要です - として、これを行う便利な方法の1つは、unary_function<T, U>
から派生させることです。ここで、T
は引数型です。
4
ただ、完全を期すために、誰かがこの質問への彼/彼女の方法をグーグル場合には、今copy ifアルゴリズムがある(C++ 11以降で)ことに言及しなければなりません。期待どおりに動作します(ある述語が真を返す範囲の要素を別の範囲にコピーします)。
典型的な使用ケースは
std::vector<int> foo{ 25, 15, 5, -5, -15 };
std::vector<int> bar;
// copy only positive numbers:
auto it = std::copy_if (foo.begin(), foo.end(), std::back_inserter(bar),
[](int i){return !(i<0);
});
関連する問題
- 1. コンパイラがすでにコマンドに追加し、C++ 0xのが、フラグを必要と
- 2. プロダクションでGCCのC++ 0xモードを使用していますか?
- 3. C/C++プログラミングで%0x%xは何を意味しますか?
- 4. Qt:CONFIG + = C++ 11、しかし-std = C++ 0x
- 5. copy_if in C++ ...問題あり
- 6. C++ 0xは、UTF-8バイトシーケンスとのstd :: wstring変換をサポートしていますか?
- 7. C++ 0xは匿名の内部クラスをサポートしていますか?
- 8. C++ 0xのdecltypeは
- 9. C++のライブラリプランは0xですか?
- 10. `#pragma once`をC++ 0xにしましたか?
- 11. (C++ 0xの)
- 12. C++ 0xのemplace_back
- 13. テンプレートtypedef C++ 0x
- 14. これは正しいC++ 0xコードですか?
- 15. C++ 0xタプルをマージする
- 16. C - 配列に追加しますか?
- 17. C++の新しいユニコード文字0x
- 18. C++ 0xは関数シグネチャでdecltype()を使用できますか?
- 19. iOS開発にC++ 0xを使用しない理由は何ですか?
- 20. ブースト-std = C++ 0xの
- 21. ポインタのエイリアシング - C++ 0x
- 22. `#include <iostream>`と `-std = C++ 0x`が壊れています
- 23. C++ 0xスレッディングライブラリを使用して終了時にクラッシュする
- 24. C#またはJava:StringBuilderに文字列を追加しますか?
- 25. C++ copy_if、トランスフォームなどの機能版
- 26. C++ 0xイニシャライザリストを使用しているときのSegフォルト
- 27. C-APIを通じてモジュールに新しいコマンドを追加しますか?
- 28. C++ 0x rvalueリファレンスがデフォルトでないのはなぜですか?
- 29. C++は新しいファイルをディレクトリに追加しました
- 30. 継承するコンストラクタはC++のテンプレートで動作しますか0xですか?
FWIWであろう、それは – dirkgently