第九章群体类-网站防火墙.ppt

上传人:ga****84 文档编号:492826 上传时间:2018-10-14 格式:PPT 页数:26 大小:167.50KB
下载 相关 举报
第九章群体类-网站防火墙.ppt_第1页
第1页 / 共26页
第九章群体类-网站防火墙.ppt_第2页
第2页 / 共26页
第九章群体类-网站防火墙.ppt_第3页
第3页 / 共26页
第九章群体类-网站防火墙.ppt_第4页
第4页 / 共26页
第九章群体类-网站防火墙.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、第十章 C+标准模板库,C+语言程序设计,2,主要内容,泛型程序设计与标准模板库有关的概念和术语C+标准模板库中的容器迭代器标准C+库中的算法函数对象,3,泛型程序设计,将程序写得尽可能通用 将算法从特定的数据结构中抽象出来,成为通用的C+的模板为泛型程序设计奠定了关键的基础 STL是泛型程序设计的一个范例 容器(container)迭代器(iterator)算法(algorithms)函数对象(function object),4,命名空间(Namespace),一个命名空间将不同的标识符集合在一个命名作用域(named scope)内为了解决命名冲突例如,声明一个命名空间NS:namspa

2、ce NS class File;void Fun (); 则引用标识符的方式如下,NS: File obj;NS: Fun ();没有声明命名空间的标识符都处于无名的命名空间中,概念和术语,5,命名空间(Namespace),可以用using来指定命名空间例如,经过以下声明:using NS:File;在当前作用域中就可以直接引用Fileusing namespace std;命名空间std中所有标识符都可直接引用在新的C+标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名,概念和术语,6,容器,容器类是容纳、包含一组元素或元素集合的对象。异类容器类与同类容器类顺序容器与

3、关联容器七种基本容器:向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap),概念和术语,7,容器的接口,通用容器运算符=,!=,=, n; Aprimecount+ = 2;,14,for(i = 3; i i/2) Aprimecount+ = i; for (i = 0; iprimecount; i+)/输出质数 coutsetw(5)Ai; if (i+1) % 10 = 0) /每输出10个数换行一次 cout endl; coutitem; Link.push_front(item

4、); cout key; Link.remove(key); cout List: ; / 输出链表 p=Link.begin();/ 使P重新指向表头 while(p!=Link.end() cout *p ; p+; / 使P指向下一个节点 cout endl;,19,容器适配器,容器适配器是用来扩展7种基本容器的栈容器使用适配器与一种基础容器相结合来实现例10-4:应用标准库中的deque顺序容器生成一个整数栈stack。队列容器使用适配器与一种基础容器相结合来实现的先进先出数据结构。例10-5:应用标准库中的deque顺序容器生成一个整数标准队列Queue。,容 器,20,什么是迭代器

5、,迭代器是面向对象版本的指针指针可以指向内存中的一个地址迭代器可以指向容器中的一个位置STL的每一个容器类模版中,都定义了一组对应的迭代器类。使用迭代器,算法函数可以访问容器中指定位置的元素,而无需关心元素的具体类型。,迭代器,21,迭代器的类型,输入迭代器可以用来从序列中读取数据输出迭代器允许向序列中写入数据前向迭代器既是输入迭代器又是输出迭代器,并且可以对序列进行单向的遍历双向迭代器与前向迭代器相似,但是在两个方向上都可以对数据遍历随机访问迭代器也是双向迭代器,但能够在序列中的任意两个位置之间进行跳转。,迭代器,22,迭代器适配器,迭代器适配器是用来扩展(或调整)迭代器功能的类。它本身也被

6、称为迭代器,只是这种迭代器是通过改变另一个迭代器而得到的逆向迭代器通过重新定义递增运算和递减运算,使其行为正好倒置插入型迭代器将赋值操作转换为插入操作。通过这种迭代器,算法可以执行插入行为而不是覆盖行为例10-6应用逆向迭代器和后插迭代器来操作向量容器中的元素,迭代器,23,迭代器相关的辅助函数,advance()函数将迭代器的位置增加,增加的幅度由参数决定Distance()函数返回迭代器之间的距离函数iter_swap()交换两个迭代器所指向的元素值例10-7用三个迭代器辅助函数来操作列表容器中的元素。,迭代器,24,标准C+库中的算法,算法本身是一种函数模板不可变序列算法(Non-mut

7、ating algorithms)不直接修改所操作的容器内容的算法可变序列算法(Mutating algorithms)可以修改它们所操作的容器的元素。排序相关算法数值算法,算 法,25,算法应用举例,例10-9应用不可变序列算法对数据序列进行分析例10-10以可变序列算法对数据序列进行复制,生成,删除,替换,倒序,旋转等可变性操作。例10-11 应用排序相关算法对序列进行各项操作例10-12应用数值算法对数据序列进行操作,算 法,26,函数对象,一个行为类似函数的对象,它可以不需参数,也可以带有若干参数,其功能是获取一个值,或者改变操作的状态。任何普通的函数和任何重载了调用运算符operator()的类的对象都满足函数对象的特征STL中也定义了一些标准的函数对象,如果以功能划分,可以分为算术运算、关系运算、逻辑运算三大类。为了调用这些标准函数对象,需要包含头文件。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。