C++改变数组长度
C++改变数组长度
代码
//改变数组长度
#ifndef CHANGELENGTH1D_H
#define CHANGELENGTH1D_H
#include<stdexcept>
#include<algorithm>
template<typename T>
void changeLength1D(T *&a,int oldLength, int newLength)
{
if(newLength < 0)
throw std::runtime_error("New length must be >=0");
T* temp = new T[newLength];
int number = std::min(oldLength, newLength);
//copy( from_vector.begin(), from_vector.end(), to_vector.begin())
std::copy(a, a+number, temp);
delete [] a;
a = temp;
}
#endif // CHANGELENGTH1D_H
验证头文件
#include <iostream>
#include "changelength1d.h"
using namespace std;
int main()
{
try{
double* a = new double[2];
a[0] = 11;
a[1] = 12;
changeLength1D(a,2,6);
for(int i=2;i<6;i++)
a[i]=i;
for(int i=0;i<6;i++)
cout << a[i] << endl;
return 0;
}catch(runtime_error err)
{
cout << err.what() << endl;
}
}
参考文献
本文为保持文章完整性可能使用了其他作者的文字,如果影响到您的权益,请与我联系,谢谢理解!
转载本文请注明出处,非作者授权不得用于商业用途。