0

バッファBの各値から特定の値を減算したいと思います。したがって、たとえば、バッファBに次のような値が含まれている場合。

1000 1500 2000200

次に、減算する値が5の場合、出力は次のようになります。

995 1495 1995 195

また、差が負になる場合は、0に切り捨てる必要があります。

私はそれを行うための些細な方法があることを知っていますが、私は怠惰な人であり、この目的のためにいくつかの機能を探しています。

これを行うためのC/C ++の関数はありますか?

更新 基本的に、私の些細なループ方法と比較して、関数がより最適化されることを期待しています。私のバッファには5000000の値があり、これはそのような何千ものバッファに対して連続して実行されます。

4

1 に答える 1

0

次のような 1 つの関数:

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 に答える