- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)