std::transform can use a lambda to build changed values from an input range.

Transform With Lambda

transform_with_lambda.cpp
#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    int scale = ;

    std::vector<int> values{1, 2, 4};
    std::vector<int> scaled(values.size());

    std::transform(values.begin(), values.end(), scaled.begin(), [scale](int value) {
        return value * scale;
    });

    for (int value : scaled) {
        std::cout << "scaled=" << value << std::endl;
    }

    return 0;
}
#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    int scale = ;

    std::vector<int> values{1, 2, 4};
    std::vector<int> scaled(values.size());

    std::transform(values.begin(), values.end(), scaled.begin(), [scale](int value) {
        return value * scale;
    });

    for (int value : scaled) {
        std::cout << "scaled=" << value << std::endl;
    }

    return 0;
}
#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    int scale = ;

    std::vector<int> values{1, 2, 4};
    std::vector<int> scaled(values.size());

    std::transform(values.begin(), values.end(), scaled.begin(), [scale](int value) {
        return value * scale;
    });

    for (int value : scaled) {
        std::cout << "scaled=" << value << std::endl;
    }

    return 0;
}
transform `std::transform` applies a callable to each input value and writes the result to an output range.