- 3
- 0
- 约1.11万字
- 约 48页
- 2015-08-12 发布于广东
- 举报
4.2 数组 二维数组的特点: template class T arrayT::array(int sz) { if (sz=0) throw 数组的长度非法!; size=sz; aelem=new T[size]; if (aelem==NULL) throw 内存分配失败!; } template class T arrayT::array(const arrayT a) //由另一数组来构造 { int size=n=a.size//当前数组的长度 aelem=new T[size]; if (aelem==NULL) { size=0; throw 内存分配失败!; } for(int i=0;in;i++) aelem[i]=a.elem[i];//复制数组} template class T arrayT arrayT::operator=(const arrayT a) //数组整体赋值 { int n; if (aelem!=NULL) delete [] aelem;//释放原有的存储单元 size=n=a.size; aelem=new T[size]; if (aelem==NULL) { size=0; throw 内存分配失败!; } T *sa=a.aelem;//源数组首地址 T *de=aelem;//当前数组首地址 while(n--) *de++=*sa++;//复制数组; return *this; } template class T void arrayT::resize(int sz)//修改数组大小 { //修改数组长度,使原长度改为sz,且把原数组元素拷贝到新数组元素中, //释放原数组空间,若szsize,则拷贝原数组的前sz个元素 T *nea; if (sz=0) throw 数组的长度非法!; if (sz!=size) { nea=new T[sz];//建立新数组 } 例2、已知二维数组Am,m按行存储的元素地址公式是: Loc(aij)= Loc(a11)+[(i-1)*m+(j-1)]*K , 按列存储的公式是? Loc(aij)=Loc(a11)+[(j-1)*m+(i-1)]*K (尽管是方阵,但公式仍不同) 若是n维数组,其中任一元素的地址该如何计算? Loc(j1,j2,…jn)=LOC(0,0,…0)+ templateclass T marrayT::marray(int dm) { int i; if(dm1||dmMARRAY_DIM) //dim不能大于8小于1 throw 维数不合理!; dim=dm;//初始化存储各维信息存储区域 bounds=new int[dim]; if (bounds==NULL) throw 存储空间申请有误!; //若各维长度合法,则存入A.bounds,并求出A的元素总数elemtotal etotal=1; for(i=0;idim;i++){ cout请输入i维的大小endl; cinbounds[i]; if(bounds[i]0) throw 维数大小不正确!; etotal *=bounds[i];//求数组元素的个数 } base=new T[etotal]; if(base==NULL) throw 存储空间申请有误!; constants=new int[dim]; //求Ci时仅于维数dim、bi有关(仅求一维数组下标,所以L可视为1) if(constants==NULL) throw 存储空间申请有误!; constants[dim-1]=1;//cn-1 for(i=dim-2;i=0;--i) constants[i]=bounds[i+1]*constants[i+1]; //其中Cn-1=L, Ci=bi+1×Ci+1,0i≤n-1 } template class T long int marrayT::Locate() { int i,ind;long int off; //从键盘输入合法的各下标值, //并求其与起始元素的相对地址off,初值为of
您可能关注的文档
- 第四章 颜料.ppt
- 第四章 原子吸收光谱(药学).ppt
- 第四章 噪声测试与监测1.ppt
- 第四章 知识.ppt
- 第四章 AT89S51片内并行端口的原理及编程.ppt
- 第四章 C语言中的输入和输出.ppt
- 第四章 Excel 2003表格处理软件.ppt
- 第四章 JSP基本语法.ppt
- 第四章 JSP基础.ppt
- 第四章 MCS51单片机的基本结构及工作原理.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)