我试图创建一个用于创建给出的两倍大小的阵列的方法,然后填充与原始值的阵列和下半年以相反的顺序原始值的前半部分。我已经完成了这一点,但接下来的任务是使方法接受泛型类型的数组,我被卡住,不知道从这里到 到目前为止我的代码去:C++模板方法的语法问题
template <typename T>
T& *copy_and_reverse(T& *a, int length) {
T& *result = new T&[length*2];
int w = length-1;
for (int i = 0; i < length * 2; i++) {
if (i < length) {
result[i] = a[i];
} else {
result[i]=a[w];
w--;
}
}
return result;
}
int main() {
double numbers[5]={8.364,4.3,5.3,9.6,7.645};
int size=sizeof numbers/sizeof(double);
double *pointertonumbers;
pointertonumbers=copy_and_reverse(numbers, size);
for(int i=0;i<size*2;i++){
cout<<pointertonumbers[i]<<"\n";
}
}
在代码完成的那一刻不工作,因为我得到多个“错误:不能声明指针'T &'”
停止使用指针 - 不返回新的东西 - T&*是愚蠢 –
采取与双打作品的版本。用“T”代替“double”的出现。在它前面放'模板'。 –
Casey