C++ 20 では、C# で可能なように、<ranges>
最終的にシーケンスから選択して を 1 行で初期化できるかどうかを知りたいです。これには、おそらくオブジェクトを.set
IEnumerable
<ranges>
std::initializer_list
C#:
int[] sequence = new int[] { 0,1,2,3,4 };
HashSet<int> set = new HashSet<int>(sequence.Where((int i) => i % 2 == 0));
C++:
std::vector<int> sequence { 0,1,2,3,4 };
auto matcher = sequence | std::ranges::views::filter([](int i) { return !(i % 2); });
std::set<int> myset(matcher.begin(), matcher.end());
私は次のようなことをしたい:
std::vector<int> sequence { 0,1,2,3,4 };
std::set<int> myset { sequence | std::ranges::views::filter([](int i) { return !(i % 2); }) };