C++语言程序设计ppt课件.ppt
《C++语言程序设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《C++语言程序设计ppt课件.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十章第十章 C+标准模板库标准模板库C+语言程序设计C+语言程序设计软件学院 李建东C+语言程序设计2主要内容主要内容l泛型程序设计泛型程序设计l与标准模板库有关的概念和术语与标准模板库有关的概念和术语lC+标准模板库中的容器标准模板库中的容器l迭代器迭代器l标准标准C+库中的算法库中的算法l函数对象函数对象 C+语言程序设计软件学院 李建东C+语言程序设计3泛型程序设计泛型程序设计l将程序写得尽可能通用将程序写得尽可能通用 l将算法从特定的数据结构中抽象出来,成将算法从特定的数据结构中抽象出来,成为通用的为通用的lC+的模板为泛型程序设计奠定了关键的的模板为泛型程序设计奠定了关键的基础基础
2、 lSTL是泛型程序设计的一个范例是泛型程序设计的一个范例 容器(container) 迭代器(iterator) 算法(algorithms) 函数对象(function object)C+语言程序设计软件学院 李建东C+语言程序设计4命名空间(命名空间(namespace)l一个命名空间将不同的标识符集合在一个一个命名空间将不同的标识符集合在一个命名作用域(命名作用域(named scope)内)内 为了解决命名冲突 例如,声明一个命名空间NS:namspace NS class File;void Fun (); 则引用标识符的方式如下,NS: File obj;NS: Fun ();l
3、没有声明命名空间的标识符都处于无名的没有声明命名空间的标识符都处于无名的命名空间中命名空间中概念和术语C+语言程序设计软件学院 李建东C+语言程序设计5命名空间(续)命名空间(续)l可以用可以用using来指定命名空间来指定命名空间 例如,经过以下声明:using NS:File;在当前作用域中就可以直接引用File using namespace std;命名空间std中所有标识符都可直接引用l在新的在新的C+标准程序库中,所有标识标准程序库中,所有标识符都声明在命名空间符都声明在命名空间std中,头文件中,头文件都不使用扩展名都不使用扩展名概念和术语C+语言程序设计软件学院 李建东C+语言
4、程序设计6容器容器l容器类是容纳、包含一组元素或元素容器类是容纳、包含一组元素或元素集合的对象。集合的对象。l异类容器类与同类容器类异类容器类与同类容器类l顺序容器与关联容器顺序容器与关联容器l七种基本容器:七种基本容器: 向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap)概念和术语C+语言程序设计软件学院 李建东C+语言程序设计7容器的接口容器的接口l通用容器运算符通用容器运算符 =,!=,=,=,=l方法(函数)方法(函数)迭代方法lbegin(),end(),rbegin(),rend
5、()访问方法lsize(),max_size(),swap(),empty()C+语言程序设计软件学院 李建东C+语言程序设计8适配器适配器l适配器是一种接口类适配器是一种接口类 为已有的类提供新的接口。 目的是简化、约束、使之安全、隐藏或者改变被修改类提供的服务集合。l三种类型的适配器:三种类型的适配器: 容器适配器l用来扩展7种基本容器,它们和顺序容器相结合构成栈、队列和优先队列容器 迭代器适配器 函数对象适配器。概念和术语C+语言程序设计软件学院 李建东C+语言程序设计9迭代器迭代器迭代器是面向对象版本的指针,它迭代器是面向对象版本的指针,它们提供了访问容器、序列中每个元素的们提供了访问
6、容器、序列中每个元素的方法。方法。概念和术语C+语言程序设计软件学院 李建东C+语言程序设计10算法算法lC+标准模板库中包括标准模板库中包括70多个算法多个算法 其中包括查找算法,排序算法,消除算法,记数算法,比较算法,变换算法,置换算法和容器管理等等。l这些算法的一个最重要的特性就是它这些算法的一个最重要的特性就是它们的统一性,并且可以广泛用于不同们的统一性,并且可以广泛用于不同的对象和内置的数据类型。的对象和内置的数据类型。概念和术语C+语言程序设计软件学院 李建东C+语言程序设计11顺序容器顺序容器l顺序容器的接口顺序容器的接口 插入方法lpush_front(),push_back(
7、),insert(),运算符“=” 删除方法lpop() ,erase(),clear() 迭代访问方法l使用迭代器 其他顺序容器访问方法(不修改访问方法)lfront(),back(),下标运算符容 器C+语言程序设计软件学院 李建东C+语言程序设计12顺序容器顺序容器向量向量l向量属于顺序容器,用于容纳不定长向量属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问)列的快速随机访问(也称直接访问)l向量是动态结构,它的大小不固定,向量是动态结构,它的大小不固定,可以在程序运行时增加或减少。可以在程序运行时增加或减少。l例
8、例10-1 求范围2N中的质数,N在程序运行时由键盘输入。容 器13/10_1.cpp/10_1.cpp#include iostream#include #include iomanip#include #include #include /包含向量容器头文件包含向量容器头文件using namespace std ;using namespace std ;intint main() main() vectorint vector A(10); A(10); int int n; n; int primecount int primecount = 0, i, j; = 0, i, j;
9、cout cout=2 as upper limit: ;=2 as upper limit: ; cin cin n; n; Aprimecount Aprimecount+ = 2;+ = 2;1314 for(ifor(i = 3; i n; i+) = 3; i n; i+) if (primecount = A.size if (primecount = A.size()() A.resize(primecount A.resize(primecount + 10); + 10); if (i % 2 = 0) if (i % 2 = 0) continue; continue; j
10、 = 3; j = 3; while (j = i/2 & i % j != 0) while (j i/2) Aprimecount if (j i/2) Aprimecount+ = i;+ = i; for (i = 0; iprimecount for (i = 0; iprimecount; i+)/; i+)/输出质数输出质数 coutsetw(5)Ai coutsetw(5)Ai; ; if (i+1) % 10 = 0) / if (i+1) % 10 = 0) /每输出每输出1010个数换行一次个数换行一次 cout endlcout endl; ; coutendl cou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言程序设计 ppt 课件
限制150内