迭代器模式

2021-08-08 04:56:30 字數 1075 閱讀 2268

說實話這個迭代器模式實現起來有點模糊

[cpp]view plain

copy

print?

/* 迭代器模式:提供一種方法順序訪問乙個聚合物件中個各個元素,而不暴露該對像的內部表示. 

模式的動機: 

(1)乙個聚合物件,如乙個列表(list)或者乙個集合(set),應該提供一種方法來讓別人可以訪問 

它的元素,而又不需要暴露它的內部結構。 

(2)針對不同的需要,可能還要以不同的方式遍歷整個聚合物件,但是我們並不希望在聚合物件的 

抽象層介面中充斥著各種不同遍歷的操作。 

(3)怎樣遍歷乙個聚合物件,又不需要了解聚合物件的內部結構,還能夠提供多種不同的遍歷方式, 

這就是迭代器模式所要解決的問題。 

created by phoenix_fulima 

*/  

#include 

#include 

using namespace std;  

/* object可以是任意型別的變數 */  

typedef int object;  

class iterator  

;  class concreteaggregate  

object& operator(int index)  

int size()  

};  

class concreteiterator:public iterator  

virtual object begin()  

virtual void next()  

virtual object end()  

virtual object current()  

virtual bool isdone()  

};  

int main()  

cout<

delete objects;  

delete iter;  

system("pause");  

return 0;  

迭代器模式

迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而不是暴露該物件的內部表示。乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。你需要對聚集有多種方式遍歷時,可以考慮用迭代器模式。為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等統一...

迭代器模式

我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...

迭代器模式

迭代器模式 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件多的內部表示。1 iterator抽象類 public abstract class iterator 2 aggregate聚集抽象類 public abstract class aggregate 3 concreteite...