C 設計模式 迭代器模式

2022-09-21 12:33:11 字數 1611 閱讀 1409

迭代器模式(iterator)提供了一種順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。

因此,當你需要訪問乙個聚焦物件,而且不管這些物件是什麼都需要遍歷的時候,就應該選擇使用迭代器模式,為了遍歷不同的聚合結構提供了如開始,下乙個,是否結束,當前哪一項等統一的介面。

//迭代抽象類,用於定義得到開始物件、得到下乙個物件、判斷是否到結尾、當前物件等抽象方法,統一介面

class

iterator

;

virtual ~iterator() {};

virtual

string first() = 0

;

virtual

string next() = 0

;

virtual

string currentitem() = 0

;

virtual

bool isdone() = 0;};

//聚集抽象類

class

aggregate;//

具體迭代器類,繼承iterator 實現開始、下乙個、是否結尾、當前物件等方法

class concreteiterator : public

iterator

string

first()

string

next()

return

strret;

}string

currentitem()

bool

isdone()

private

: aggregate*m_aggregate;

intm_ncurrent;

};//

具體聚集類 繼承

class concreteaggregate : public

aggregate

~concreteaggregate()

}iterator*createiterator()

return

m_piterator;

}intcount()

void push(const

string&strvalue)

string pop(const

intnindex)

return

strret;

}private

: vector

m_vecitems;

iterator*m_piterator;

};int

main()

iterator* iter =null;

iter = pname->createiterator();

if (null !=iter)

}system(

"pause");

return0;

}

C 設計模式 迭代器模式

迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式結構圖 iterator迭代器抽象類 class iterator public virtual object first 0 virtual object next 0 virtual ...

C 設計模式 迭代器模式

迭代器模式 提供一種方法順序訪問乙個聚合物件中的各個元素,而又不暴露其內部的結構 每一種資料結構 包括自定義 遍歷自身內部的資料方式都是不同的。但是我們又希望和常規的遍歷方式一樣呼叫,就如for和foreach一樣遍歷。想要以相同的方式遍歷不同型別的聚合物件,首先就要有乙個相同的介面方法來統一獲取,...

設計模式 C 迭代器模式

sejimoshi.cpp 此檔案包含 main 函式。程式執行將在此處開始並結束。include include include using namespace std class student long getid intgetage void setname string name void...