- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 C++标准模板库 主要内容 泛型程序设计 与标准模板库有关的概念和术语 C++标准模板库中的容器(7+3) 迭代器(五大类) 标准C++库中的算法(70多个) 函数对象 (13个) STL,虽然是一套程序库(Library),却不只是一般印象中的程序库,而是一个有着划时代意义,背后拥有先进技术与深厚理论的产品。说它是产品也可以,说它是规格也可以,说它是软件组件技术发展史上一个大突破,也当之无愧。 长久以来,软件界一直希望建立一种可重复运用的东西,以及一种得以制造出“可重复运用的东西”的方法,让工程师/程序员的心血不至于随时间的迁移、人事异动而烟消云散。从子程序(subroutines)、程序(procedures)、函数(functions)、类别(classes),到函数库(function libraries )、类别库(class libraries )、各种组件(components),从结构化设计、模块化设计、面向对象设计,到样式(patterns)的归纳整理,无一不是软件工程的漫漫奋斗史。为的就是复用性(reusebility)的提升。 ———摘自《STL源码分析》 泛型程序设计 ( Generic Programming ) 是采用各种技术,将程序写得尽可能通用 ; 目的:将算法从特定的数据结构中抽象出来,成为通用的、公用的; 作用:C++的模板技术为泛型程序设计奠定了关键的基础; STL是泛型程序设计的一个优秀范例 。 带参宏;其缺点是显然的 ; 使用 void * ,如 malloc();繁琐且不安全; 使用通用的根类和虚函数,如Java的object 和继承;致使系统庞大,代价也大; 使用模板技术;类型安全,无开销 。 容器 容器类是容纳、包含一组元素对象或元素集合的类。 异类容器类与同类容器类; 顺序容器与关联容器 七种基本容器: 向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap) 扩展容器:stack queue priority_queue 注意:容器不像数组,它可以是空容器!Why? 容器的接口 “接口”是指容器的外观界面,其实是公有成员函数。包括: 通用容器运算符: ==,!=,,=,,=,= 方法(函数) 迭代方法: begin(),end(),rbegin(),rend() 访问方法: size(),max_size(),swap(),empty() (以上是所有容器至少具备的共性的,另外还有个性的。) 顺序容器 顺序容器:其中的元素被视为逻辑上线性排列的,有头有尾,有前导有后继,索引值即位置值。 以上特点使顺序容器可以随机访问其中的元素。 STL 提供三个基本顺序容器: vector list deque STL 还提供三个容器适配器(扩展) stack queue priority_queue 顺序容器的接口(通用方法) 插入方法 push_front(),push_back(),insert(),运算符“=” 删除方法 pop_front(),pop_back () ,erase(),clear() 迭代访问方法 使用迭代器 其它顺序容器访问方法(只读访问) front(),back(),下标[]运算符 顺序容器——向量 向量属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问) 向量是动态结构,它的大小不固定,可以在程序运行时增加或减少。 P334-335 给出了向量的部分接口。 向量的模型 vector T ve // 使用vector 的例子 #include vector #include iostream using namespace std; void main() { int temp[3] = {4,5,6}; vectorint container1(3); vectorint container2(temp,temp+3); container1[0] = 1; container1[1] = 2; container1[2] = 3; cout Data in Container-1 : container1[0] container1[1] container1[2] \n; cout Data in Container-2 : container2[0]
文档评论(0)