c 之迭代器模式

2021-10-08 11:57:06 字數 1268 閱讀 9295

迭代器模式

定義:提供一種方法順序訪問乙個集合物件中的元素,但是又不暴露該物件的內部顯示

這裡採用了類模板來定義類,強化對模板的運用。

**:

#include #include #include using namespace std;

//抽象迭代器類

templateclass iterator

;//抽象聚合類

templateclass aggregate

;//具體聚合類

templateclass concreteaggregate :aggregate

~concreteaggregate() }

int count()

void pu****em(const t& str)

t removeitem(const int index)

return res;

} iterator* createiterator()

private:

vectorm_listitem;

iterator*m_piter;

};//具體迭代器類

templateclass concreteiterator :public iterator

t firstitem()

t nextitem()

return t();

} t currentitem()

bool isend()

private:

aggregate*m_pconcretea;

int m_cnt;

};//客戶端

int main()

} cout << "********************" << endl;

concreteaggregate*p1 = new concreteaggregate;

p1->pu****em(999);

p1->pu****em(888);

p1->pu****em(666);

p1->pu****em(555);

iterator*piter = p1->createiterator();

if (piter) }

if (p)

if (p1)

return 0;

}

效果:

c 設計模式之迭代器模式

迭代器模式iterator pattern 定義 迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。適用場景 1 訪問乙個聚合物件的內容而無需暴露它的內部表示,2 支援對聚合物件的多種遍歷,3 為遍歷不同的聚合結構提供乙個統一的介面。迭代器模式的...

設計模式之迭代器模式(C )

迭代器模式,提供一種方法順序訪問乙個聚合物件中各個元素,而不暴露該物件的內部表示。該模式很好理解,c 中的迭代器應該都用過,和那個差不多。其uml圖如下 concreteiterator內部有乙個聚合物件的引用 指標 而concreteaggregate依賴於concreteiterator。以前向...

c 迭代器模式

不能直接std 的迭代器代替麼。iterator 定義迭代器訪問和遍歷元素的介面 concreteiterator 實現具體的迭代器 aggregate 定義的容器,建立相應迭代器物件的介面 concreteaggregate 具體的容器實現建立相應迭代器的介面,該操作返回concreteitera...