std::accumulatey std::reducehace casi lo mismo.
Resumen de lo std::reducedice todo:
similar to `std::accumulate`, except out of order
En muchos casos, estas funciones deberían producir el mismo resultado final y exhibir la misma funcionalidad general. Es obvio que si tiene un cálculo de carga muy pesado, etc., puede experimentar std::reducepara la parrelización. Es decir. ¿Cuál es la sabiduría convencional aquí desde el punto de vista de las aves? ¿Debería siempre apegarse al std :: acumular contundente a menos que se optimice explícitamente? o simplemente debería usar de manera predeterminada std::reduce?
Si std::reduce(con la política predeterminada / sin ejecución elegida) siempre es al menos tan rápido como std::accumulate(guarde algunas instrucciones), entonces creo que acumular solo debe usarse cuando el orden es estricto.
fuente
