通常、Javaストリームにはうってつけの問題がありますが、現在はC++ 11を使用しています。C++でフィルターをかけて折り畳む
私はJavaでこの問題を解決する方法は次のとおりです。
int solution = myList.stream() //myList is an arraylist of MyClass
.mapToInt(MyClass::GetInt)
.sum();
C++標準ライブラリの少しを探索した後、私は std::transform
とstd::accumulate
が存在することを学びました。
私の唯一の問題はそれだけで私は私が蓄積する前に、V
(整数)を入力するタイプT
からマッピングするために必要な場所、T
を入力するタイプT
からマッピングすることができるようstd::transform
が思われることです。
理想的には、各ステップの中間結果を一時的な配列に格納するのではなく、このロジックを連鎖させることができます。
これを達成するための慣用的なC++ 11の方法はありますか?
読みますもう一度 '蓄積する'ためのドキュメンテーション。そしてもう一度。 –
"タイプTからタイプTにしかマップできないようです" - 本当ですか? –