第一讲 STL简介60301

第一讲 STL简介60301

ID:38506771

大小:9.81 MB

页数:37页

时间:2019-06-13

第一讲 STL简介60301_第1页
第一讲 STL简介60301_第2页
第一讲 STL简介60301_第3页
第一讲 STL简介60301_第4页
第一讲 STL简介60301_第5页
资源描述:

《第一讲 STL简介60301》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一讲STL简介一个问题:输入任意个整数,排序然后输出。程序结构一个小程序可以作为一个单独的单元实现随着程序逐步扩大,这种结构也就不再合理必须分解成许多独立的小程序,——模块,这些模块组合起来共同完成所要实现的功能分解需要考虑的问题怎样将大型程序设计中的问题分解成一些小问题来处理?用什么样的技术能够更好地将这些模块组合起来解决最初的问题?问题分解(1)大型问题的处理原则——分而治之选择怎样分解问题的方法是最重要的分解的原则:每个子问题在细节上处于相同的级别每个子问题能够独立解决每个子问题的解决方法合起来可以解决原问题问题分解(2)分解并不是万能的,使用

2、不恰当则会造成不良后果最普遍遇到的问题是建立单个模块解决了子问题,却不能将其组合起来解决原来的问题通过改变问题所涉及的细节等级,抽象可以有效地处理分解的问题抽象抽象的过程能够看做是多对一映射的应用,允许我们忽略个体信息,从而将不同的事物当做相同的事物来对待进行抽象主要是希望通过将相关的属性和其他不相关的属性分开,以简化分析过程抽象是有层次的C++中的两种抽象机制参数化抽象:用参数替换数据特征来进行抽象。归纳出模块,用于更多的情况intsqr(intx){returnx*x}ints=sqr(x)+sqr(y)规格化抽象:将执行细节(即模块如何实现)抽象

3、为用户所需求的行为(即模块做什么)floatsqrt(floatn)//REQUIRES:n>0//EFFECTS:Returnsanapproximationtothesquarerootofnstl中包含了大量这种抽象什么是STL?STL全名标准模版库(StandardTemplateLibrary),是一群以template为根基的C++程序库目的在提供一些基本的容器类别(containerclass)与高效的算法(algorithm)一般来说程序是由算法加上数据结构,互相配合、一起工作,完成程序的功能。但如此一来便将数据结构与算法紧密绑定,不能

4、分离,缺乏弹性Stepanov先生便针对此问题,采通用型设计的思维,使得程序员可以:以有效率的算法解决问题,此算法可处理各种数据结构,即算法与数据结构互为独立2.各种数据结构使用一致的接口(interface),让各种算法可以透过此接口处理各种数据结构STL简单架构容器类(container)算法(Algotithms)IteratorSTL的组成关系AlgorithmsFunctionObjectsAdapterIteratorsContainersSTL五个部分简述容器(container)-用来储存其他物件迭代器(iterator)-好比传统C语

5、言的指针,可藉之来处理容器对象算法(algorithm)-算法通过迭代器来操作容器对象适配器(adaptor)-利用基础容器对象,加以包装,改变其接口,以适应另一种需求函数对象(functionobject)-为STL中较低阶的对象,用来代替传统的函数指针(functionpointer)序列容器数据结构描述头文件向量(vector)连续存储的元素列表(list)由节点组成的双向链表,每个结点包含着一个元素双队列(deque)连续存储的指向不同元素的指针所组成的数组关联容器数据结构描述头文件集合(set)由包含

6、着一个元素的节点组成的红黑树,无相同元素多重集合(multiset)允许存在两个次序相等的元素的集合映射(map)由{键,值}对组成的集合,以某种作用于键对上的谓词排列多重映射(multimap)允许键对有相等的次序的映射容器适配器数据结构可适配容器头文件栈(stack)vector,list,deque队列(queue))list,deque优先队列(priority_queue)vector,deque容器的通用操作equality(==)和inequality(!=

7、)运算符赋值运算符=empty()size()clear()begin()end()insert()erase()指针的抽象示例给定一个存储整数的vector及一个整数值,在vector中查找这个值,并返回指针指向该值,null表示不存在该值一个解:constint*find(constvector&vec,intvalue){for(inti=0;i

8、array其一:通过函数的overload实现另一个:只写一份,同时处理vector和arra

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

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

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