- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计--对象分册(第7章).ppt
第7章 标准模板库STL介绍及应用 本章学习重点掌握内容: 标准模板库STL的基本概念 标准模板库STL的组成部分 命名空间的概念及使用 容器的概念和使用 迭代器的概念和使用 算法的概念和使用 标准模板库STL的应用 第7章 标准模板库STL介绍及应用 7.1 标准模板库STL的概念 7.2 命名空间 7.3 容器(Container) 7.4 迭代器(Iterator) 7.5 算法(Algorithm) 7.6 综合应用实例 7.1 标准模板库STL的概念 STL最初是由惠普实验室开发的一系列组件,是标准C++库的重要补充之一。 从逻辑层次来看,STL体现了泛型程序设计的思想,引入了多个新的名词,比如容器、算法、迭代器等。 在STL中,几乎所有的代码都采用了类模板和函数模板的方式,因而,提供了更好的代码重用机会。 从广义上讲,STL的代码分为三类:容器、迭代器和算法。这3类代码被组织为13个头文件。 7.1.2 STL和C++标准的关系 7.1.3 STL组成部分 7.1.3 STL组成部分 1.容器 能够保存其它类型的对象的类。C++的容器可以包含混合类型的对象,也就是说容器类可以包含一组相同类型或一组不同类型的对象。当容器类包含相同类型的对象时,称为同类容器类;当容器类包含不同类型的对象时,称为异类容器类。 2.迭代器 迭代器从作用上来说是STL最基本的部分,但理解起来比较困难。简单的说,迭代器是指针的泛化,它允许程序员以相同的方式处理不同的数据结构(容器)。迭代器是算法访问容器的中介。 7.1.3 STL组成部分 3.算法 一个按照一组定义明确的步骤来解决某个问题的处理过程,理论上,它不依赖于任何特定的计算机编程语言。STL提供了大约70个实现算法的函数模板。 4.函数对象 所谓函数对象是定义了函数调用操作符的对象。在使用STL时,经常需要把函数对象作为算法的输入参数或实例化一个容器(container)时的输入参数。 7.1.4 STL对C++的影响 在STL之前,C++支持三种基本的编程样式—面向过程编程、数据抽象和面向对象编程。 在STL出现之后,C++可以支持一种新的编程模式—泛型程序设计。 STL并不完美,但是,它开辟了程序设计的新天地,它拥有的影响力甚至于超过了巨大的C++群体。 7.2 命名空间 7.2.1 命名空间的定义 定义命名空间的语法格式如下: namespace 命名空间名 { 声明序列 } 其中, namespace是关键字,后面是命名空间名。命名空间名必须在它被定义的作用域中具有唯一的名字,否则会产生错误。在命名空间名后一对花括号“{}”括起来的是声明序列。所有可以出现在全局作用域的定义或声明都可以放在其中。 7.2.1 命名空间的定义 namespace myNameSpace{ string myStr = myStr; class myClass{ public: myClass(); //类的其它部分 }; void myFunc(){} int myCount = 0; extern exFun(); //其它实体定义或声明 } 7.2.1 命名空间的定义 定义或使用命名空间需要注意下面几个方面: (1)namespace只能在全局范畴定义,但它们之间可以互相嵌套,即在命名空间定义内容定义一个新的命名空间。 (2)在namespace定义的结尾,大括号的后面不必要跟一个分号。 (3)一个namespace可以在多个头文件中用一个标识符来定义。 (4)一个namespace的名字可以用另一个名字做它的别名。 (5)不能像类那样去创建一个命名空间的实例。 (6)可以通过多次声明和定义同一命名空间,把新的成员名称加入到已有的命名空间之中去。 7.2.2 命名空间的使用 对命名空间中成员的引用,需要使用命名空间的域操作符:: 。 【例7.1】使用命名空间的例子。 #include iostream #include string using namespace std; //两个在不同命名空间中定义的名字相同的变量 namespace mySpace1{//自定义命名空间 string myStr = myStr1; } namespace mySpace2{ string myStr = myStr2; } 7.2.2 命名空间的使用 void main() { //用命名空间域操作符mySpac
您可能关注的文档
最近下载
- (2024版)天翼云从业者认证考试题库(多选、判断题汇总).docx VIP
- 2024年华医网继续教育临床静脉用药质量管理与风险防范答案.docx VIP
- 2024年全国甲卷历史试卷42题小论文题讲评+课件--2025届高考历史一轮复习.pptx VIP
- SNB粘度计中文中性版说明书.pdf
- 陈涛结构化研讨与催化师培训(PDF56页).pdf
- 中华民族共同体概论课件专家版10第十讲 中外会通与中华民族巩固壮大(明朝时期).pptx VIP
- 2024-2025学年初中物理八年级上册(2024)苏科版(2024)教学设计合集.docx
- 公路养护工考试高级公路养护工.doc VIP
- 某某医院关于使用后未被污染输液瓶(袋)的管理制度.docx VIP
- 在巡察整改专题民主生活会上的总结讲话.doc VIP
文档评论(0)