常用STL容器与泛型算法.ppt

常用STL容器与泛型算法.ppt

ID:56471906

大小:480.00 KB

页数:35页

时间:2020-06-19

常用STL容器与泛型算法.ppt_第1页
常用STL容器与泛型算法.ppt_第2页
常用STL容器与泛型算法.ppt_第3页
常用STL容器与泛型算法.ppt_第4页
常用STL容器与泛型算法.ppt_第5页
资源描述:

《常用STL容器与泛型算法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、STL容器与泛型算法常用STL基本用法泛型算法auto_ptrSTL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是Alexander StepanovMeng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板

2、类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文件:。为什么使用STL不在为各种各样的数据类型操心提供非常高效的算法做事情达到事半功倍的效果不受工作领域限制常用容器vectorDequeListSetandMulti

3、setMapandMultimap容器共有的操作ContTypec创建一个空的容器ContTypec1(c2)创建一个拷贝C2内容的容器ContTypec(beg,end)创建一个包含(BEG,END)间数据的容器c.~ContType()删除所有数据和释放内存c.size()返回元素的个数c.empty()清空容器数据c1==c2c1返回c1是否与c2相等c1!=c2返回c1是否与c2不相等c1c2返回C1是否大于C2c1<=c2返回C1是否小于等于C2容器共有的操作c1>=c2返回C1是

4、否大于等于C2c1=c2赋值操作(内部元素拷贝)c1.swap(c2)交换C1和C2的数据swap(c1,c2)交换C1和C2的数据c.begin()返回一个iterator指向第一个元素c.end()返回一个iterator指向最后一个元素的后一个位置c.rbegin()返回一个reverseiterator指向第一个元素c.rend()返回一个reverseiterator指向最后一个元素的后一个位置c.insert(pos,elem)插入一个元素c.erase(beg,end)删除(beg,end)间所有元素c.cl

5、ear()删除容器所有元素vectorVector是一个动态数组,支持内存自动增长,使用需要包含#includevector有如下初始化方法vectorcvectorc1(c2)vectorc(n)vectorc(n,elem)vectorc(beg,end)Vector基本操作c.insert(pos,elem)c.insert(pos,n,elem)c.insert(pos,beg,end)c.push_back(elem)c.pop_back

6、()c.erase(pos)c.erase(beg,end)c.resize(num)c.resize(num,elem)c.clear()用例分析用例分析Deque(“deck”)和VECTOR一样,也可以看成一个动态数组,不过区别在于Deque是两端开放的,也就是一个双向队列。使用该容器要包含#include与VECTOR相同点:很多基本操作都是一样的,删除容器中部的一个数据速度差不多与VECTOR的不同点在尾端或末端插入或删除元素比较快内部结构存在多种存取方式,因此存储元素或移动iterator会比VE

7、CTOR稍微慢DEQUE由于分配的是多块内存,max_size()可能大些DEQUE不支持capacity()andreserve(),也就是说不支持reserve分配内存注意插入或删除操作都有可能造成容器的内存重新分配,因此以前指向其它元素iterators可能会无效。例子LISTLIST实际上就是一个双向链表头文件#includeLIST不能提供随机存取,比如要存储第5个元素,由前四个元素组成的链表必须要建好,访问LIST里任意一个元素比较慢。插入和删除元素非常快,因为不存在移动其它元素的操作插入和删除元素

8、不会使其它元素的指针,引用,迭代器失效LIST每个元素都有自己的内存,所以不需要capacityorreallocationLIST有自己的一些移动元素的算法,因为它只需要改变指针LIST操作c.insert(pos,elem)c.insert(pos,n,elem)c.insert(pos,beg,e

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

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

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