C++程序设计课程介绍第16章 容器和迭代器.ppt
《C++程序设计课程介绍第16章 容器和迭代器.ppt》由会员分享,可在线阅读,更多相关《C++程序设计课程介绍第16章 容器和迭代器.ppt(30页珍藏版)》请在三一办公上搜索。
1、第16章 容器和迭代器,容器是特定类型的对象的集合,也就是为了保存一组对象而设计的类容器一般提供插入、删除、查找以及访问容器中的所有对象等功能用户不必关心容器中的对象是如何保存的。用户只需要使用容器提供的插入操作将对象放入容器,用删除操作将对象从容器中删除数组是容器的一种实现,链表也是容器的一种实现,迭代器,给出数组的下标可以访问数组的某一元素,给出一个指向某一结点的指针可以访问链表中的一个元素。访问一个容器中的对象必须有一个指向容器中某一个对象位置的信息容器中的对象位置是什么类型的信息?如果容器是用数组实现,则是一个整型数。如果容器是用单链表实现,则是一个指向单链表结点的指针。对象位置的类型
2、与容器的实现方式有关。因此,通常为每种容器定义一个表示其中变量位置的类型,称为迭代器。,迭代器,迭代器常常与容器一起使用。迭代器对象相当于是指向容器中对象的指针。迭代器对象“穿行”于容器,容器中的某一元素执行某种操作。可以将迭代器看成一种抽象的指针,迭代器进一步隐藏数据的存储方式。,迭代器常用操作,迭代器对象赋值迭代器对象的比较让迭代器移到当前对象的下一对象取迭代器指向的对象,迭代器的优点,在数组中,要访问所有结点可以用For(i=1;inext)Cout data endl;各种结构的抽象实现就是采用迭代器For(ListItr Itr(L);+Itr;+Itr)Cout Itr()endl
3、;与某一元素相关的操作可以让迭代器完成,容器类只完成对表整体的操作。迭代器一般作为相应类的友元类或内嵌类。,迭代器实例 顺序表中的迭代器,设计一个用数组实现的容器。该容器可以通过简单的 运算符重载达到同时访问表元素的问题,但也可以用迭代器访问。功能:可以将数据依次放入容器。当数组不够大时,容器自动扩展数组。删除最后放入的对象在迭代器指出的位置插入一对象删除迭代器指出的位置的对象迭代器的常规操作:设置迭代器的初始位置,向后移一位置,判断迭代器指向的位置是否有对象,取迭代器指向的对象。,设计考虑,将迭代器类设置成容器类的内嵌类容器的行为:放入一对象删除一对象在指定位置放入一对象删除指定位置的对象取
4、容器的首尾位置迭代器的行为设置迭代器的值迭代器向后移动比较两迭代器是否相同,类的设计,template class seqlist private:int size;int current_size;T*storage;void doubleSpace();public:seqlist(int s=10):size(s)storage=new Tsize;current_size=0;seqlist()delete storage;,void push_back(const T,class Itr T*pos;public:Itr(T*obj=NULL)pos=obj;Itr,Itr begi
5、n()return Itr(storage);Itr end()return Itr(storage+current_size);void insert(Itr,doubleSpace,template void seqlist:doubleSpace()T*tmp=storage;size*=2;storage=new Tsize;for(int i=0;i current_size;+i)storagei=tmpi;delete tmp;,insert,template void seqlist:insert(Itr,erase,template void seqlist:erase(co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+程序设计课程介绍第16章 容器和迭代器 C+ 程序设计 课程 介绍 16 容器 迭代器

链接地址:https://www.31ppt.com/p-2204047.html