生成和转换算法在C ++中不起作用

首先,我使用std :: generate初始化具有 值等于索引:

void Gen(std::vector<int> v)
{
    for (int i = 0; i < v.size(); i++)
        v[i] = i;

}

std::generate(arr.begin(), arr.end(), Gen);
    print(arr);

并且不起作用bind函数。

我也尝试使用std :: transform创建具有初始范围平方的新数组

std::vector<int> arr1 = { 4, 6, 3, 8, 1 };
    std::vector<int> newVec1;

std::transform(arr1.begin(), arr1.end(), std::back_inserter(newVec1), [](int i) {return i * i; });
    print(arr1);

这与同一阵列相同