std::accumulate برای جمع زدن مقادیر یک بازه استفاده میشه .
برای نمونه :
vector<int> vec ={1,2,3,4};
int sum = std::accumulate(vec.begin(),vec.end(),0);//10
ولی partial_sum به این شکل عمل می کنه که بازه ها را بصورت بخش به بخش جمع می کنه و در خروجی ذخیره می کنه .
مثال :
vector<int> vec={1,2,3,4};
vector<int> out;
std::partial_sum(vec.begin(),vec.end(),std::back_inserter(out));
//
//out[0]=vec[0];
//out[1]=vec[0]+vec[1];
//out[2]=vec[0]+vec[1]+vec[2];
//out[3]=vec[0]+vec[1]+vec[2]++vec[3];
اجرای کد