C++实用教程郑阿奇主编资料16.ppt

C++实用教程郑阿奇主编资料16.ppt

ID:50966141

大小:278.50 KB

页数:47页

时间:2020-03-16

C++实用教程郑阿奇主编资料16.ppt_第1页
C++实用教程郑阿奇主编资料16.ppt_第2页
C++实用教程郑阿奇主编资料16.ppt_第3页
C++实用教程郑阿奇主编资料16.ppt_第4页
C++实用教程郑阿奇主编资料16.ppt_第5页
资源描述:

《C++实用教程郑阿奇主编资料16.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第16章标准模板库(STL)16.1迭代器16.1.1迭代器的由来在STL中,迭代器是一种“特殊”的指针,用来指定或引用容器中元素的位置正是因为对不同容器的操作具有相同的实现代码,所以才会形成STL的算法器及迭代器以优化和简化算法代码。16.1.2迭代器的类型STL提供了5种不同的迭代器:输入、输出、正向、双向和随机访问迭代器(1)输入迭代器。它是一种单向迭代器,只可递增,不可回退(2)输出迭代器。它是一种单向迭代器,只不过它是向容器中写入元素。(3)正向迭代器。它是输入迭代器和输出迭代器功能的组合,其操作元素总是向前移动(即支持+

2、+操作),与输入迭代器或输出迭代器不同的是,它多次遍历的顺序都是相同的。(4)双向迭代器。它常用于reserse(逆序)等操作,支持指针的++和操作。(5)随机访问迭代器。它具有双向迭代器的所有功能,同时增加了直接访问容器中任何元素的功能,即可向前、向后跳过任意多个元素,以及用于对元素排序的关系运算等16.2容器类容器是一个与数组类似的单元,可以存取若干元素主要容器类有:deque(双端队列)、list(链表、列表)、queue(队列)、stack(栈)、vector(向量)、map(映像)、multimap(多重映像)、set(集

3、合)和multiset(多重集合)16.2.1向量、链表和双端队列1.模型概述向量、链表和双端队列都可以看成是顺序存储的线性表,只是链表不像向量和双端队列那样具有随机访问的能力2.deque、list和vectortemplate>classvector{…};template>classdeque{…};template>c

4、lasslist{…};一旦建立了容器类vector、list或deque实例化类对象,就可以通过对象进行下列常用操作(1)元素的插入操作。用于元素插入操作的成员函数为insert、push_front和push_back(2)元素的删除和清除操作。用于删除元素操作的成员函数有erase、pop_front和pop_back,clear用于清除操作(3)元素访问操作。容器类vector和deque除了提供下标运算符“[]”来引用指定位置的对象元素的内存空间外,还提供下列元素访问操作(4)迭代器和空间大小属性操作。容器类vector、

5、list和deque都提供下列有关迭代器和空间大小属性的常用操作(5)链表操作。与容器类vector和deque不同的是,容器类list自身还有不同的常用操作,如反序、排序、合并等[例Ex_Vector]向量容器类示例#include#include//向量容器类头文件包含#include//迭代器头文件包含#include//算法器头文件包含usingnamespacestd;//演示iterator操作voidshow(vector&v){i

6、f(v.empty()){cout<<"该向量容器为空!";return;}vector::iteratorip;//定义指针for(ip=v.begin();ip#include//向量容器类头文件包含#include//迭代器头文件包含#include//算法器头文件包含usingnamespacestd;//演示iter

7、ator操作voidshow(vector&v){if(v.empty()){cout<<"该向量容器为空!";return;}vector::iteratorip;//定义指针for(ip=v.begin();ip#include//链表容器类头文件包含#include//迭代器头文件包

8、含usingnamespacestd;//演示iterator操作voidshow(list&v){if(v.empty()){cout<<"该链表为空!";return;}list::iteratorip=v

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

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

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