欢迎来到天天文库
浏览记录
ID:45057238
大小:227.66 KB
页数:24页
时间:2019-11-08
《C完整PPT课件)第10章泛型程序设计与C标准模板库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、泛型程序设计将程序写得尽可能通用将算法从特定的数据结构中抽象出来,成为通用的C++的模板为泛型程序设计奠定了关键的基础STL是泛型程序设计的一个范例容器(container)迭代器(iterator)算法(algorithms)函数对象(functionobject)命名空间(Namespace)一个命名空间将不同的标识符集合在一个命名作用域(namedscope)内为了解决命名冲突例如,声明一个命名空间NS:namspaceNS{classFile;voidFun();}则引用标识符的方式如下,NS::Fil
2、eobj;NS::Fun();没有声明命名空间的标识符都处于无名的命名空间中概念和术语命名空间(Namespace)可以用using来指定命名空间例如,经过以下声明:usingNS::File;在当前作用域中就可以直接引用Fileusingnamespacestd;命名空间std中所有标识符都可直接引用在新的C++标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名概念和术语容器容器类是容纳、包含一组元素或元素集合的对象。异类容器类与同类容器类顺序容器与关联容器七种基本容器:向量(vector
3、)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)概念和术语容器的接口通用容器运算符==,!=,>,>=,<,<=,=方法(函数)迭代方法begin(),end(),rbegin(),rend()访问方法size(),max_size(),swap(),empty()适配器适配器是一种接口类为已有的类提供新的接口。目的是简化、约束、使之安全、隐藏或者改变被修改类提供的服务集合。三种类型的适配器:容器适配器用来扩展7种基本容器,
4、它们和顺序容器相结合构成栈、队列和优先队列容器迭代器适配器函数对象适配器。概念和术语迭代器迭代器是面向对象版本的指针,它们提供了访问容器、序列中每个元素的方法。概念和术语算法C++标准模板库中包括70多个算法其中包括查找算法,排序算法,消除算法,记数算法,比较算法,变换算法,置换算法和容器管理等等。这些算法的一个最重要的特性就是它们的统一性,并且可以广泛用于不同的对象和内置的数据类型。概念和术语顺序容器顺序容器的接口插入方法push_front(),push_back(),insert(),运算符“=”删除方法
5、pop(),erase(),clear()迭代访问方法使用迭代器其它顺序容器访问方法(不修改访问方法)front(),back(),下标[]运算符容器顺序容器——向量向量属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问)向量是动态结构,它的大小不固定,可以在程序运行时增加或减少。例10-1求范围2~N中的质数,N在程序运行时由键盘输入。容器//10_1.cpp#include#include#include//包含向
6、量容器头文件usingnamespacestd;voidmain(void){vectorA(10);intn;intprimecount=0,i,j;cout<<"Enteravalue>=2asupperlimit:";cin>>n;A[primecount++]=2;11for(i=3;i7、if(j>i/2)A[primecount++]=i;}for(i=0;i8、还提供了拼接(splicing)操作,将一个序列中的元素从插入到另一个序列中。例10-3改写例9-7从键盘输入10个整数,用这些整数值作为结点数据,生成一个链表,按顺序输出链表中结点的数值。然后从键盘输入一个待查找整数,在链表中查找该整数,若找到则删除该整数所在的结点(如果出现多次,全部删除),然后输出删除结点以后的链表。在程序结束之前清空链表。容器//10_3.cpp#include
7、if(j>i/2)A[primecount++]=i;}for(i=0;i8、还提供了拼接(splicing)操作,将一个序列中的元素从插入到另一个序列中。例10-3改写例9-7从键盘输入10个整数,用这些整数值作为结点数据,生成一个链表,按顺序输出链表中结点的数值。然后从键盘输入一个待查找整数,在链表中查找该整数,若找到则删除该整数所在的结点(如果出现多次,全部删除),然后输出删除结点以后的链表。在程序结束之前清空链表。容器//10_3.cpp#include
8、还提供了拼接(splicing)操作,将一个序列中的元素从插入到另一个序列中。例10-3改写例9-7从键盘输入10个整数,用这些整数值作为结点数据,生成一个链表,按顺序输出链表中结点的数值。然后从键盘输入一个待查找整数,在链表中查找该整数,若找到则删除该整数所在的结点(如果出现多次,全部删除),然后输出删除结点以后的链表。在程序结束之前清空链表。容器//10_3.cpp#include
此文档下载收益归作者所有