C++程序设计课件(第7篇).ppt

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第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的名字可以用另一个名字做它的别名。 7.2.1 命名空间的定义 (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() {

文档评论(0)

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

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

1亿VIP精品文档

相关文档