使用STL算法的矢量操作

时间:2014-11-04 23:36:22

标签: c++ algorithm stl

我有一个向量,我想将每个元素与标量值相乘。我为此编写了以下代码

int func(const int x)
{
    return 10 * x; // say the scalar value is 10
}
void foo()
{
    // .. compute vector vert
    std::transform(vert.begin(), vert.end(), vert.begin(), ::func);
}    

代码完成了这项工作,但我想知道是否有更简洁的实现可以实现,不需要我单独定义func函数

1 个答案:

答案 0 :(得分:3)

我还没有看到transform()实际上看起来像一个好答案的情况......我强烈建议:

for (int& x : vert) {
    x *= 10; // or x = func(x)
}

更清晰,更简洁。