我有一个函数模板,它应该采用向量并在其中生成随机数。但是,当我打印整个矢量时,它全部为零。
代码:
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);
}
}
答案 0 :(得分:4)
您正在向量的副本中生成随机数,然后在函数返回时将其丢弃。
变化:
template<class T, class B>void genRand(T data, B size)
为:
template<class T, class B>void genRand(T &data, B size)
^^^^^^^