我有一个向量,我想用它的每个元素乘以一个标量值我为此编写了以下代码

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函数。

最佳答案

我还没有看到一个案例transform()实际上看起来是一个很好的答案…我强烈建议:

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

更清晰,更简洁。

关于c++ - 使用STL算法进行 vector 处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26747133/

10-11 19:09