计划情势的解析和实现(C++)之十八-Iterator情势[VC/C++编程]
本文“计划情势的解析和实现(C++)之十八-Iterator情势[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作用:
供应一种办法次序拜候一个聚合对象中各个元素,,而又不需表露该对象的内部表示.
UML构造图:
解析:
Iterator几近是大部份人在初学C++的时刻就无意之中接触到的第一种计划情势,因为在STL之中,全部的容器类都有与之相关的迭代器.从前初学STL的时刻,经常在看到报告迭代器作用的时刻是这么说的:供应一种方法,使得算法和容器可以独立的改变,并且在拜候容器对象的时刻没必要表露容器的内部细节,具体是怎么做到这一点的呢?在STL的实现中,全部的迭代器(Iterator)都必须遵循一套标准,这套标准里面定义了几种范例的名称,比方对象的名称,指向对象的指针的名称,指向对象的引用的名称....等等,当新生成一个容器的时刻与之对应的Iterator都要服从这个标准里面所定义的名称,这样在外部看来固然里面的实现细节不一样,但是作用(也就是对外的表象)都是一样的,通过某个名称可以得到容器包含的对象,通过某个名称可以得到容器包含的对象的指针等等的.并且,采取这个情势把拜候容器的重担都交给了具体的iterator类中.于是,在利用Iterator来拜候容器对象的算法不需求知道需求处理的是什么容器,只需求服从事前约定好的Iterator的标准便可以了;而关于各个容器类而言,不管内部的事前若何,是树还是链表还是数组,只需求对外的接口也服从Iterator的尺度,这样算法(Iterator的利用者)和容器(Iterator的供应者)就可以很好的举行合作,并且没必要关心对方是若何事前的,简而言之,Iterator就是算法和容器之间的一座桥梁.
在下面的实现中,抽象基类Iterator可以看做是前面提到的Iterator的标准,它供应了全部Iterator需求服从的标准也就是对外的接口,而它的派生类ConcreateIterator则是ConcreateAggregate容器的迭代器,它遵循这个标准对容器举行迭代和拜候操作.
以上是“计划情势的解析和实现(C++)之十八-Iterator情势[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |