《C标准模板库》PPT课件.ppt

上传人:tia****nde 文档编号:12708183 上传时间:2020-05-14 格式:PPT 页数:26 大小:203KB
返回 下载 相关 举报
《C标准模板库》PPT课件.ppt_第1页
第1页 / 共26页
《C标准模板库》PPT课件.ppt_第2页
第2页 / 共26页
《C标准模板库》PPT课件.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
1,第十章C+标准模板库,C+语言程序设计,主要内容,泛型程序设计与标准模板库有关的概念和术语C+标准模板库中的容器迭代器标准C+库中的算法函数对象,泛型程序设计,将程序写得尽可能通用将算法从特定的数据结构中抽象出来,成为通用的C+的模板为泛型程序设计奠定了关键的基础STL是泛型程序设计的一个范例容器(container)迭代器(iterator)算法(algorithms)函数对象(functionobject),命名空间(Namespace),一个命名空间将不同的标识符集合在一个命名作用域(namedscope)内为了解决命名冲突例如,声明一个命名空间NS:namspaceNSclassFile;voidFun();则引用标识符的方式如下,NS:Fileobj;NS:Fun();没有声明命名空间的标识符都处于无名的命名空间中,命名空间(Namespace),可以用using来指定命名空间例如,经过以下声明:usingNS:File;在当前作用域中就可以直接引用Fileusingnamespacestd;命名空间std中所有标识符都可直接引用在新的C+标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名,容器,容器类是容纳、包含一组元素或元素集合的对象。异类容器类与同类容器类顺序容器与关联容器七种基本容器:向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap),容器的接口,通用容器运算符=,!=,=,n;Aprimecount+=2;,13,for(i=3;ii/2)Aprimecount+=i;for(i=0;iprimecount;i+)/输出质数coutsetw(5)Ai;if(i+1)%10=0)/每输出10个数换行一次coutendl;coutitem;Link.push_front(item);coutkey;Link.remove(key);coutList:;/输出链表p=Link.begin();/使P重新指向表头while(p!=Link.end()cout*p;p+;/使P指向下一个节点coutendl;,18,容器适配器,容器适配器是用来扩展7种基本容器的栈容器使用适配器与一种基础容器相结合来实现例10-4:应用标准库中的deque顺序容器生成一个整数栈stack。队列容器使用适配器与一种基础容器相结合来实现的先进先出数据结构。例10-5:应用标准库中的deque顺序容器生成一个整数标准队列Queue。,什么是迭代器,迭代器是面向对象版本的指针指针可以指向内存中的一个地址迭代器可以指向容器中的一个位置STL的每一个容器类模版中,都定义了一组对应的迭代器类。使用迭代器,算法函数可以访问容器中指定位置的元素,而无需关心元素的具体类型。,迭代器的类型,输入迭代器可以用来从序列中读取数据输出迭代器允许向序列中写入数据前向迭代器既是输入迭代器又是输出迭代器,并且可以对序列进行单向的遍历双向迭代器与前向迭代器相似,但是在两个方向上都可以对数据遍历随机访问迭代器也是双向迭代器,但能够在序列中的任意两个位置之间进行跳转。,迭代器适配器,迭代器适配器是用来扩展(或调整)迭代器功能的类。它本身也被称为迭代器,只是这种迭代器是通过改变另一个迭代器而得到的逆向迭代器通过重新定义递增运算和递减运算,使其行为正好倒置插入型迭代器将赋值操作转换为插入操作。通过这种迭代器,算法可以执行插入行为而不是覆盖行为例10-6应用逆向迭代器和后插迭代器来操作向量容器中的元素,迭代器,迭代器相关的辅助函数,advance()函数将迭代器的位置增加,增加的幅度由参数决定Distance()函数返回迭代器之间的距离函数iter_swap()交换两个迭代器所指向的元素值例10-7用三个迭代器辅助函数来操作列表容器中的元素。,标准C+库中的算法,算法本身是一种函数模板不可变序列算法(Non-mutatingalgorithms)不直接修改所操作的容器内容的算法可变序列算法(Mutatingalgorithms)可以修改它们所操作的容器的元素。排序相关算法数值算法,算法应用举例,例10-9应用不可变序列算法对数据序列进行分析例10-10以可变序列算法对数据序列进行复制,生成,删除,替换,倒序,旋转等可变性操作。例10-11应用排序相关算法对序列进行各项操作例10-12应用数值算法对数据序列进行操作,函数对象,一个行为类似函数的对象,它可以不需参数,也可以带有若干参数,其功能是获取一个值,或者改变操作的状态。任何普通的函数和任何重载了调用运算符operator()的类的对象都满足函数对象的特征STL中也定义了一些标准的函数对象,如果以功能划分,可以分为算术运算、关系运算、逻辑运算三大类。为了调用这些标准函数对象,需要包含头文件。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!