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;
}

 

posted @ 2022-08-10 22:58  lma_o  阅读(182)  评论(0编辑  收藏  举报