我有一个函数模板,假设它采用向量并在其中生成随机数。 但是,当我打印整个矢量时,它全部为零。但是,此方法适用于数组。
代码:
#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);
}
};
答案 0 :(得分:4)
您可以按值获取向量,因此参数不会更改。参考:
void genRand(std::vector<T>& data, int size)
// ^