std::accumulate
そして、std::reduce
ほぼ同じことを行います。
の要約std::reduce
はそれをすべて言います:
similar to `std::accumulate`, except out of order
多くの場合、これらの関数は同じ最終結果をもたらし、同じ全体的な機能を発揮します。非常に重い負荷計算などを行っている場合はstd::reduce
、並列化を試すことができます。つまり。ここで鳥の観点から見た従来の知恵は何ですか?明示的に最適化しない限り、常に鈍いstd :: accumulateに固執する必要がありますか?またはデフォルトで使用する必要がありますstd::reduce
か?
場合はstd::reduce
、少なくとも速さとして常にある(選択されたデフォルト/なし実行ポリシーを持つ)std::accumulate
(少数の命令保存)、私は順序が厳しいときに累積にのみ使用されるべきだと思います。