网站大量收购独家精品文档,联系QQ:2885784924

第五篇 数组、字符串、集合类.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 数组、字符串、集合类 ● 数组的存储 ① 数组元素在内存中是顺序、连续存储的; ② 数组的存储分配按行(列)进行; ③ 数组名字表示该数组的首元素地址,是常量。 1、一维数组 对于一维数组而言,各元素按下标次序依次存放, 如a[0],a[1],a[2],…等等。且有: a[0]: a[1]: a[2]: 数组中任一元素A[i]的地址可表示为: Loc(a[i]) = Loc(a[0]) +i*C C为每个元素占用存储空间的字节数。 2、二维数组 按行存放 [例] int x[2][3]/*它有2×3个数组元素*/ x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2] x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2] 其存储分配顺序为: x[0][0]-x[0][1]-x[0][2]-x[1][0]-x[1][1]-x[1][2] x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2] C中的二维数组可以看作是一种特殊的一维数组。 [例] float a[3][4]; b[0] a[0][0] a[0][1] a[0][2] a[0][3] b- b[1] a[1][0] a[1][1] a[1][2] a[1][3] b[2] a[2][0] a[2][1] a[2][2] a[2][3] 二维数组元素a[i][j]的地址可以这样得到: Loc(a [i][j]) = Loc(b[i]) +j*C Loc(b[i]) = Loc(b[0]) + i*C’ // C’=n*C Loc(a[i][j]) = Loc(a[0][0]) + i*n*C+j*C = Loc(a[0][0]) + (i*n+j)*C [例] Loc(a[1][2]) = a+(i*n+j)C =a+(1*4+2)*4 = a+24 3、三维数组 多维数组元素在内存中的排序顺序为:第一维的下标变化最慢,最右边的下标变化最快。 [例]float a[2][3][4]; 5.1.2 静态数组和动态数组 静态数组的规模在编译时已经确定,无法在运行时根据 具体需要进行修改 1 动态数组类 Array 的定义 P73 声明: # include iostream.h # include stdlib.h template class T class Array { private: int FSize;//数组的大小 T* alist;//指向数组的第一个元素的指针 void Allocate( );//为数组分配空间 public: Array( int sz=50 ); Array( const Array T x ); //复制构造函数 Array( void ) { delete[ ] alist;} ArrayT operator=(const ArrayT x); T operator[ ](int i); ArrayT Operator T*(void)const {return alist;} int ListSize(void) const { return Fsize;} void Resize(int NewSize); }; Array类的实现: Templateclass T // 为数组分配空间 Void ArrayT∷Allocate( ) { alist = new T[Fsize]; if( alist==0 ) cerr“Memory Allocation Fail.”endl; } Templateclass T // 构造函数 ArrayT∷Array(int sz=50) { if(sz=0) { cerr“Invalid Array Size.”endl; return; } Fsize=sz; Allo

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档