【设计模式】之八Iterator
来源:互联网 发布:vscode webpack插件 编辑:程序博客网 时间:2024/04/27 17:35
Type: Behavioral
Iterator:提供一个方法连续访问一个聚合对象的元素,同时不暴露其底层表示
#include <iostream>using namespace std;#define Data intclass Iterator{public: virtual Data* next()=0;};class ConcreteIterator: public Iterator{public: ConcreteIterator(Data* data, int* size) { m_pData = data; m_pSize = size; mIndex = 0; }; Data* next() { if(m_pData != NULL && mIndex < *m_pSize){ return &m_pData[mIndex++]; } else { return NULL; } }; private: int mIndex; Data* m_pData; int* m_pSize;};class Aggregate{public:virtual Iterator* createIterator() = 0;};class ConcreteAggregate: public Aggregate{public: ConcreteAggregate(int size) { mSize = size; mData = new Data[size]; for(int i=0;i<size; i++) mData[i] = i; }; Iterator* createIterator() { Iterator* iterator = new ConcreteIterator(this->mData, &this->mSize); return iterator; };private: Data* mData; int mSize;};int main(){Aggregate* pAggregate = new ConcreteAggregate(4);Iterator* pIterator = pAggregate->createIterator(); Data* data; int count = 0;while (data = pIterator->next()){ if(count ++ > 10) break;cout <<*data<<endl;} system("pause");return 0;}
- 【设计模式】之八Iterator
- 设计模式之Iterator
- 设计模式之Iterator
- 设计模式之 iterator
- 设计模式之Iterator
- 设计模式之Iterator
- 设计模式之Iterator
- 设计模式之iterator
- 设计模式之Iterator
- 设计模式之Iterator模式
- 设计模式之Iterator模式
- 设计模式之Iterator (迭代器)
- java设计模式之Iterator
- Java设计模式之Iterator
- 设计模式之:Iterator迭代器
- 设计模式之Iterator迭代器
- 设计模式之二:iterator
- 设计模式简单代码之Iterator模式
- 面试技巧汇总:16个经典面试问题回答思路 .
- 解决sqlite死锁示例异常database is locked
- CPPUNIT安装和使用(linux)
- 大话设计模式
- QT
- 【设计模式】之八Iterator
- Spring 之 AOP
- 跨部门工作支持申请单详情
- cl.exe 这个要下载VCTOOlKIT 蛋疼无比
- IOS开发UIScrollView控件详解
- 冒泡排序
- Android 长按Menu键的监听
- RobotLegs轻量级AS3框架
- 【MFC】VC读写ini文件