从数组的每个元素中减去标量的函数

时间:2012-10-31 06:41:59

标签: visual-c++ stl

我想从缓冲区B中的每个值中减去一个特定值。因此,例如,如果缓冲区B包含值为;

1000 1500 2000 200

然后,如果要减去的值是5,则输出应为:

995 1495 1995 195

如果差异为负,则应截断为0.

我知道有很多方法可以做到这一点,但我是一个懒惰的人,我正在为此寻找一些功能。

C / C ++中的任何函数都是这样做的吗?

更新 基本上我期望与我的简单循环方法相比,该函数将更加优化。我的缓冲区有5000000个值,这将连续在数千个这样的缓冲区上执行。

1 个答案:

答案 0 :(得分:0)

这样的一个功能:

void SubtractArray(vector<int>& coll)
{
    transform(coll.begin(), coll.end(), coll.begin(), [](int elem){
        return elem - 5 < 0 ? 0 : elem - 5;
    });
}