函数模板未正确生成随机数

Function template isn't producing random numbers properly

本文关键字:随机数 函数模板      更新时间:2023-10-16

我有一个函数模板,它应该取一个向量并在里面产生随机数。然而,当我打印整个向量时,它都是零。

代码:

const  int smallSize = 20;
// declare small vector
vector <int> smallVector(smallSize);
genRand(smallVector, smallSize);
// make copy of small vector 
vector<int> copySmallVector = smallVector;
// function template for generating random numbers
template<class T, class B>void genRand(T data, B size)
{
    for (B i = 0; i < size; i++)
    {
        data[i] = (1 + rand() % size);
    }
}

在向量的副本中生成随机数,然后在函数返回时将其丢弃。

更改:

template<class T, class B>void genRand(T data, B size)

至:

template<class T, class B>void genRand(T &data, B size)
                                       ^^^^^^^