我想从缓冲区B中的每个值中减去一个特定值。因此,例如,如果缓冲区B包含值为;
1000 1500 2000 200
然后,如果要减去的值是5,则输出应为:
995 1495 1995 195
如果差异为负,则应截断为0.
我知道有很多方法可以做到这一点,但我是一个懒惰的人,我正在为此寻找一些功能。
C / C ++中的任何函数都是这样做的吗?
更新 基本上我期望与我的简单循环方法相比,该函数将更加优化。我的缓冲区有5000000个值,这将连续在数千个这样的缓冲区上执行。
答案 0 :(得分:0)
这样的一个功能:
void SubtractArray(vector<int>& coll)
{
transform(coll.begin(), coll.end(), coll.begin(), [](int elem){
return elem - 5 < 0 ? 0 : elem - 5;
});
}