私はを持っていて、いくつかの単純な基準を満たすMyTypesのみを含むvector<MyType>
別のものが欲しいです。たとえば、いくつかのデータメンバーが何かに等しいということです。vector<MyType>
これを解決するための最良の方法は何ですか?
2727 次
2 に答える
17
使用copy_if
:
#include <algorithm> // for copy_if
#include <iterator> // for back_inserter
std::vector<MyType> v2;
std::copy_if(v1.begin(), v1.end(), std::back_inserter(v2),
[](MyType const & x) { return simple_citerion(x); } );
于 2012-05-22T22:31:12.897 に答える
7
Boostを少し使用すると、次のことができます。
std::vector<int> v = {1,2,-9,3};
for (auto i : v | filtered(_arg1 >=0))
std::cout << i << "\n";
このサンプルでは、式テンプレート()で定義された暗黙のラムダにPhoenixを使用して_arg1 >= 0
いますが、Boostアダプター(フィトラー、トランスフォーム、リバースなど)で任意の呼び出し可能(C ++ 03以降)を使用できます
その他のショーケース資料と完全な例については、こちらをご覧ください。
于 2012-05-22T22:31:38.480 に答える