template<class T> void changeLength1D(T*& a,int oldLength,int newLength) { if(newLength >= 0) { T* temp = new T[newLength]; int number = min(oldLength,newLength);//肯定要複製元素個數 copy(a,a+number,temp); delete [] a;//釋放老數組空間 a = temp; } else { cout<<"數組長度應該大於0"<<endl; } }
該函數的大體思路是:
1.創建一個具備新長度的數組
2.把數組a的元素複製到這個新數組
3.改變數組a的值,使其可以引用新數組數組