C++改变一个一维数组长度
注意:
动态数组,只能赋给动态数组,
T* & arr 指针引用
不一定就是往大了改,还有可能往小的改变,取新旧长度的最小值,来确定复制的数量
新的长度需要判断是否大于0
#include #include #include #define min(a,b) a>b?b:a;using std:: cin;using std:: cout;using std:: endl;using std:: copy; //T* & arr 指针引用template void Change_Array_Length(T* & arr,int oldlength,int newlength){ //不一定就是往大了改,还有可能往小的改变 assert(newlength > 0); T *temp = new T[newlength]; int number = min(oldlength, newlength); //copy在std命名空间下 copy(arr,arr+number,temp); delete[] arr; //temp 指向动态数组,则要求arr,也是动态数组 arr = temp;}int main(){ //temp 指向动态数组,则要求传的指针也是动态数组 int *p = new int [8]; for (int i = 0; i < 8; i++) p[i] = i; Change_Array_Length(p, 8, 4); for(int i=0;i<8;) cout << p[i++] << endl; return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~