我試圖創建一個用於創建給出的兩倍大小的陣列的方法,然後填充與原始值的陣列和下半年以相反的順序原始值的前半部分。我已經完成了這一點,但接下來的任務是使方法接受泛型類型的數組,我被卡住,不知道從這裏到 到目前爲止我的代碼去: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