日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式复习-迭代器模式

發布時間:2025/6/17 asp.net 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式复习-迭代器模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Iterator.H #pragma once #include <list> #include <windows.h> using namespace std;/* 設計模式-迭代器模式(Iterator) 提供一種方法順序訪問一個聚合對象中的各個元素,而不暴露該對象內部表示。 (現在好多語言都已經內置實現了這個功能了,所以實際用途不大, 但是建議寫一下,實現過程價值遠遠大于使用價值。) */class Iterator{//迭代器抽象類public:virtual void * First() = 0;virtual void * Next() = 0;virtual BOOL IsDone() = 0;virtual void * CurrentItem() = 0; };class CAggregate {//聚集抽象類public:virtual Iterator * CreateIterator() = 0;virtual void Insert(void * const pNode) = 0;virtual void Remove(void * const pNode) = 0; };class CConcreteAggregate :public CAggregate {//具體聚集類public:list<void*>mpItems;CConcreteAggregate();void Clear();Iterator * CreateIterator();void Insert(void * const pNode);void Remove(void * const pNode); };class CConcreteIterator : public Iterator {//具體的迭代器類private:CConcreteAggregate *mpAggregate = NULL;int mnCurrent = 0; public:CConcreteIterator(CConcreteAggregate * pAggregate);void * First();void * Next();BOOL IsDone();void * CurrentItem(); };Iterator.CPP #include "stdafx.h" #include "Iterator.h"CConcreteAggregate::CConcreteAggregate() {mpItems.clear(); }void CConcreteAggregate::Clear() {for each(auto i in mpItems) {delete i;} }Iterator * CConcreteAggregate::CreateIterator() {return new CConcreteIterator(this); }void CConcreteAggregate::Insert(void * const pNode) {mpItems.push_back(pNode); } void CConcreteAggregate::Remove(void * const pNode) {mpItems.remove(pNode); }CConcreteIterator::CConcreteIterator(CConcreteAggregate * pAggregate) {mpAggregate = pAggregate;mnCurrent = 0; }void * CConcreteIterator::First() {return mpAggregate->mpItems.size() == 0 ? NULL :*(mpAggregate->mpItems.begin()); } void * CConcreteIterator::Next() {if (IsDone()) return NULL;int nSubscript = 0;mnCurrent++;for each(auto i in mpAggregate->mpItems) {if (nSubscript++ == mnCurrent + 1) {return i;}} } BOOL CConcreteIterator::IsDone() {return mnCurrent >= mpAggregate->mpItems.size(); } void * CConcreteIterator::CurrentItem() {int nSubscript = 0;for each(auto i in mpAggregate->mpItems) {if (nSubscript++ == mnCurrent) {return i;}}return NULL; }#pragma once #include "stdafx.h" #include "Iterator.h" #include<string> #include<iostream> using namespace std;int main() {CConcreteAggregate *pA = new CConcreteAggregate();pA->Insert(new string("node-1"));pA->Insert(new string("node-2"));string * pStr = new string("node-3");pA->Insert(pStr);Iterator *pIteratorA = new CConcreteIterator(pA);while (!pIteratorA->IsDone()) {cout << *((string*)pIteratorA->CurrentItem()) << endl;pIteratorA->Next();}pA->Remove(pStr);Iterator *pIteratorB = pA->CreateIterator();while (!pIteratorB->IsDone()) {cout << *((string*)pIteratorB->CurrentItem()) << endl;pIteratorB->Next();}pA->Clear();delete pIteratorA;delete pIteratorB;delete pA;delete pStr;getchar();return 0; }

總結

以上是生活随笔為你收集整理的设计模式复习-迭代器模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产亚洲一区二区三区在线观看 | 免费黄网站在线看 | 亚洲AV无码成人精品区在线观 | 久久婷婷网站 | 欧美又粗又深又猛又爽啪啪九色 | 华人av在线 | 国产美女一区二区三区 | 熟女av一区二区 | 日韩黄色一级大片 | 国产a一级片 | 久久久久久亚洲中文字幕无码 | 国产男男gay体育生白袜 | 毛片视频免费播放 | а√天堂中文在线资源8 | 6996电视影片免费看 | 日韩精品色 | 日韩久久久久久 | 中文字幕精品一区二区精品 | 欧美在线观看www | 性生交大片免费看3p | 亚洲伊人网站 | 久久久久亚洲av无码专区桃色 | 亚洲AV成人无码一二三区在线 | 欧美午夜精品一区二区 | 麻豆精品视频免费观看 | 黄色片www| 久久精品国产亚洲AV成人婷婷 | 女人18岁毛片 | 亚色中文 | 日日夜夜国产精品 | 中文字幕无线码 | 亚洲午夜精品久久久久久浪潮 | 男人的天堂免费 | 欧美无砖区 | 99re8在线精品视频免费播放 | 免费一区二区视频 | 国内精品视频 | 性色av一区二区 | 美女精品网站 | 亚洲欧美色图 | 人人干人人爽 | 男人影院在线 | 天天看夜夜爽 | 大地资源中文在线观看免费版 | 欧洲一区二区视频 | 国产欧美日韩精品一区 | 久久精品国产亚洲AV黑人 | 国产成人在线一区二区 | 伊人精品视频在线观看 | 日韩福利视频在线观看 | 好吊妞在线| 亚洲xxxx天美 | 亚洲一级网站 | av电影一区二区 | 中文在线国产 | 一级黄色片免费观看 | 中文字幕精品无 | 欧美大片黄色 | 国产一区二区三区视频在线 | japanesexxxx日本妞| 每日更新在线观看av | 天天操网 | 国产18在线观看 | 免费看成人av | 高清一区二区三区四区 | 超碰人人人人 | 日本乱码一区二区 | 精品麻豆 | 青青草这里只有精品 | 久久依人网 | 337p日本大胆噜噜噜鲁 | 天堂国产精品 | 日韩精品一区二区三区在线观看 | 日韩成人免费电影 | 成 人免费va视频 | julia一区二区三区中文字幕 | 欧美性猛交ⅹxx乱大交 | 国内精品999 | 国产黄色大片视频 | 四虎国产成人精品免费一女五男 | 免费看污的网站 | 日韩视频免费观看高清完整版 | 国产精品秘 | 日韩在线不卡 | 欧美日韩国产在线观看 | 中文字幕第六页 | 欧美视频免费 | 欧美黑人又粗又大又爽免费 | 国产精品国产三级国产专区52 | 久久精品免费在线观看 | 国产一级影片 | 国产高清自拍视频 | 狠狠干成人| 亚洲国产中文字幕 | 亚洲熟妇无码av | 999精品一区 | 婷婷综合影院 | 国产精品乱码一区二区视频 | 国产在线二区 |