std::accumulate
и std::reduce
делает почти то же самое.
Сводная информация о std::reduce
говорит само за себя:
similar to `std::accumulate`, except out of order
Во многих случаях эти функции должны давать одинаковый конечный результат и демонстрировать одинаковую общую функциональность. Очевидно, что если у вас есть вычисления с очень большой нагрузкой, et c. Вы можете поэкспериментировать с std::reduce
для паррелизации. Ie. каково здесь общепринятое мнение с точки зрения птиц - следует ли вам всегда придерживаться тупого std:: накапливать, если не выполняется явная оптимизация? или просто по умолчанию использовать std::reduce
?
Если std::reduce
(с выбранной по умолчанию / не выбрана политика выполнения) всегда, по крайней мере, так же быстро, как std::accumulate
(сохранить несколько инструкций), то я думаю, что накопление должно использоваться только при строгом заказе.