泛型程序设计与C标准模板库

泛型程序设计与C标准模板库

ID:39302645

大小:1.71 MB

页数:97页

时间:2019-06-30

泛型程序设计与C标准模板库_第1页
泛型程序设计与C标准模板库_第2页
泛型程序设计与C标准模板库_第3页
泛型程序设计与C标准模板库_第4页
泛型程序设计与C标准模板库_第5页
资源描述:

《泛型程序设计与C标准模板库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章泛型程序设计与C++标准模板库清华大学郑莉目录10.1泛型程序设计及STL的结构10.2迭代器10.3容器的基本功能与分类10.4顺序容器10.5关联容器10.6函数对象10.7算法10.8综合实例——对个人银行账户管理程序的改进10.9深度探索10.10小结210.1.1泛型程序设计的基本概念编写不依赖于具体数据类型的程序将算法从特定的数据结构中抽象出来,成为通用的C++的模板为泛型程序设计奠定了关键的基础几个术语概念(concept):用来界定具备一定功能的数据类型,如“支持‘<’运算符”的数据类型构成Comparab

2、le这一概念;模型(model):符合一个概念的数据类型称为该概念的模型,如int型是Comparable概念的模型。310.1泛型程序设计及STL的结构10.1.2STL简介标准模板库(StandardTemplateLibrary,简称STL)提供了一些非常常用的数据结构和算法STL程序实例(例10-1):410.1泛型程序设计及STL的结构//包含的头文件略去……usingnamespacestd;intmain(){constintN=5;vectors(N);for(inti=0;i>s

3、[i];transform(s.begin(),s.end(), ostream_iterator(cout,""),negate());cout<

4、迭代器(iterator)10.1泛型程序设计及STL的结构——10.1.2STL简介10.2.1输入流迭代器和输出流迭代器输入流迭代器istream_iterator以输入流(如cin)为参数构造可用*(p++)获得下一个输入的元素输出流迭代器ostream_iterator构造时需要提供输出流(如cout)可用(*p++)=x将x输出到输出流二者都属于适配器适配器是用来为已有对象提供新的接口的对象输入流适配器和输出流适配器为流对象提供了迭代器的接口610.2迭代器例10-2从标准输入读入几个实数,分别将它们的平方

5、输出//10_2.cpp#include#include#includeusingnamespacestd;//求平方的函数doublesquare(doublex){returnx*x;}intmain(){//从标准输入读入若干个实数,分别将它们的平方输出transform(istream_iterator(cin),istream_iterator(),ostream_iterator(cout,"t"),squ

6、are);cout<运算符)输入迭代器可以用来从序列中读取数据,如输入流迭代器输出迭代器允

7、许向序列中写入数据,如输出流迭代器前向迭代器既是输入迭代器又是输出迭代器,并且可以对序列进行单向的遍历双向迭代器与前向迭代器相似,但是在两个方向上都可以对数据遍历随机访问迭代器也是双向迭代器,但能够在序列中的任意两个位置之间进行跳转,如指针、使用vector的begin()、end()函数得到的迭代器910.2迭代器——10.2.2迭代器的分类10.2.3迭代器的区间两个迭代器表示一个区间:[p1,p2)STL算法常以迭代器的区间作为输入,传递输入数据合法的区间p1经过n次(n>0)自增(++)操作后满足p1==p2区间包含p1

8、,但不包含p21010.2迭代器例10-3综合运用几种迭代器的示例//10_3.cpp#include#include#include#includeusingnamespacestd

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。