- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 数组和字符串 3.1 数组 3.2 矩阵 3.3 字符串 3.1 数组 3.1.1 数组的存储和寻址 3.1.2 自定义数组类 3.1.3 动态数组 高维数组可转化为一维数组计算元素的地址。 高维数组有两种存放次序:按行优先顺序和按列优先顺序。 BASIC、PASCAL、C/C++等程序设计语言中,数组按行优先顺序存放;FORTRAN语言、Matlab语言中,数组则按列优先顺序存放。 按行优先顺序,就是将数组元素按行向量的顺序存储,第i+1个行向量存储在第i个行向量之后。 二维数组的行优先存储 按行优先顺序存放 存储分配顺序为: x[0][0] → x[0][1] → x[0][2] → x[1][0] → x[1][1] → x[1][2] 二维数组可以看作是一种特殊的一维数组。 [例] 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[m][n]中元素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 [例] float a[3][4] Loc(a[1][2]) = Loc(a[0][0]) +(i×n+j) ×C = Loc(a[0][0]) +(1×4+2) ×4 = Loc(a[0][0]) +24 多维数组元素在内存中的排序顺序为:第一维的下标变化最慢,最右边的维下标变化最快。 [例] float a[2][3][4] 三维数组a[m][n][p]中元素a[i][j][k]地址计算公式为: Loc(a[i][j][k]) =Loc(a[0][0][0])+(i×n×p+j×p+k)×C [例] float D[3][3][4] Loc(D[1][2][2]) = Loc(D[0][0][0])+(i×n×p+j×p+k)×C = Loc(D[0][0][0])+ (1×3×4+2×4+2)×4 = Loc(D[0][0][0])+ 88 按列优先顺序,就是将数组元素按列向量的顺序存储,第i+1个列向量存储在第i个列向量之后。 二维数组x[2][3]的按列优先存储 如何计算按列优先顺序存储的数组元素地址?请同学们自己推导。 3.1 数组 3.1.1 数组的存储和寻址 3.1.2 自定义一维数组类 3.1.3 动态数组 数组类型是高级程序设计语言所提供的基本数据类型之一,可定义一组相同类型的元素。但是直接创建的数组存在着一些问题,诸如: ——无法执行一些基本数组运算,如数组加法和数组减法等操作; ——越界索引保护问题,即检查数组的下标索引值是否在0到arraysize-1范围内。一些高级程序设计语言对越界索引访问并不一定会产生异常,没有越界索引保护会直接给程序调试带来难以预料的困难。 为了弥补这些缺陷,可以自定义一个数组类。 一维数组类Array的类定义 template class T class Array { private: int size ; // 数组的规模 T *alist ; // 指向数组的第一个元素的指针 public: Array ( int size = 0 ) ; // 初始构造函数 Array ( const Array T v ) ; // 复制构造函数 ~Array ( ) { delete [ ] alist ; } ; // 析构函数 int ArraySize ( ) { return size ; } // 返回数组大小 T operator [] ( int i ) const ; // 重载下标符号[] Array T operator = ( const Array T v ) // 重载赋值运算符= Array T operator + ( ) const ; // 重载一元加法运算符+ Array T operator + ( const Array T v )
您可能关注的文档
- 施一剑《电子系统设计教学课件》电子系统设计实验报告参考模版.doc
- 施一剑《电子系统设计教学课件》实验操作步骤.pdf
- 时景璞《临床流行病学》1绪论时改whl.ppt
- 时景璞《临床流行病学》2资料收集与指标时改wxm.ppt
- 时景璞《临床流行病学》3研究原则时改zb.pptx
- 时景璞《临床流行病学》4临床医学研究常用设计方案sjp.pptx
- 时景璞《临床流行病学》7疗效时改whl.ppt
- 时景璞《临床流行病学》6诊断试验时改mb.pptx
- 时景璞《临床流行病学》5研误差和控制时改dw1.ppt
- 时景璞《临床流行病学》8预后时改zb.pptx
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- 单向板肋梁楼盖计算.docx
- 作业4:工学一体化课程《小型网络安装与调试》工学一体化课程考核方案.docx VIP
- 中国画之写意画.ppt VIP
- (2019苏教)小学科学三年级上册:全册整套教案资料.pdf
- 核心素养导向的高中数学课例设计研究与实践(样例)(1).doc
- 驾驶证延期委托书模板.doc
- 作业5:工学一体化课程《小型网络安装与调试》工学一体化课程终结性考核试题.docx VIP
- 作业5:工学一体化课程《小型网络安装与调试》工学一体化课程终结性考核试题.pdf VIP
- 中国画的构图形式ppt课件.pptx
- 作业11:《小型网络安装与调试》工学一体化课程教学进度计划表.pdf VIP
文档评论(0)