为什么我随机生成的数字全部输入零?

时间:2014-10-18 20:21:06

标签: c++ templates random vector

我有一个函数模板,假设它采用向量并在其中生成随机数。 但是,当我打印整个矢量时,它全部为零。但是,此方法适用于数组。

代码:

#include <vector>

template<class T> 
class RandomGenerator
{
public:
    // function template for generating random numbers
 void genRand(T data[], int size)
    {
        for (int i = 0; i < size; i++)
        {
            data[i] = (1 + rand() % size);
        }
    }



 void genRand(std::vector<T> data, int size)
    {
        genRand(&data[0], size);
    }



};

1 个答案:

答案 0 :(得分:4)

您可以按值获取向量,因此参数不会更改。参考:

 void genRand(std::vector<T>& data, int size)
 //                         ^