std::accumulate 对结构体 累加
头文件 #include <numeric>
重载函数
accumulate (迭代器开始,迭代器结束,初始值);
_Ty accumulate(_InIt _First, _InIt _Last, _Ty _Val)
accumulate (迭代器开始,迭代器结束,初始值,累加函数);
_Ty accumulate(_InIt _First, _InIt _Last, _Ty _Val, _Fn2 _Func)
对结构体的累加
struct parts { int a = 0; float fElapseTime = 0.0f; //耗时 秒(s) }; void accumulateTest() { std::vector<parts> partInfo; for (int i = 0; i< 3; i++) { parts part; part.fElapseTime = 1.1; partInfo.push_back(part); } //[&](初始值,结构体){初始值 + 结构体.值} float sum = std::accumulate(partInfo.begin() , partInfo.end(), 0.0f, [&](float sum, const parts &part) { return sum + part.fElapseTime; }); std::cout <<"sum: " << sum<<endl; }