0

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

1000 1500 2000 200

那么如果要减去的值为 5,则输出应为:

995 1495 1995 195

此外,如果差值为负,则应截断为 0。

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

C/C++ 中的 any 函数可以执行此操作吗?

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

4

1 回答 1

0

一个这样的功能:

void SubtractArray(vector<int>& coll)
{
    transform(coll.begin(), coll.end(), coll.begin(), [](int elem){
        return elem - 5 < 0 ? 0 : elem - 5;
    });
}
于 2012-10-31T07:14:10.673 回答