Разница между std::accumulate и std::partial_sum заключается в их назначении:
Таким образом, основное различие в том, что std::accumulate возвращает накопленное значение после выполнения операции над каждым элементом, а std::partial_sum назначает кумулятивную сумму и сохраняет её в другом контейнере.