網(wǎng)站設(shè)計概述500字關(guān)鍵詞批量調(diào)詞軟件
迭代器實現(xiàn)通常包含兩個主要組件:迭代器和聚合對象,聚合對象一般是vector,list,set,map等,迭代器負責(zé)在聚合對象上進行遍歷,并提供了一種統(tǒng)一的訪問元素的方法。聚合對象用來存儲,并提供創(chuàng)建迭代器的接口。通過將遍歷算法與聚合對象分離開來。
迭代器接口
#include <iostream>
#include <vector>// 迭代器接口
class Iterator {
public:virtual bool hasNext() const = 0; //是否存在下一個元素virtual int next() = 0; //返回下一個元素
};// 具體的迭代器實現(xiàn)
class ConcreteIterator : public Iterator {
private:std::vector<int> collection; //定義一個容器int position; public:ConcreteIterator(const std::vector<int>& coll) : collection(coll), position(0) {}bool hasNext() const override {return position < collection.size();}int next() override {return collection[position++];}
};// 聚合對象
class Aggregate {
private:std::vector<int> collection;public:void add(int item) {collection.push_back(item);}Iterator* createIterator() const {return new ConcreteIterator(collection);}
};int main() {Aggregate aggregate;aggregate.add(1);aggregate.add(2);aggregate.add(3);Iterator* iterator = aggregate.createIterator();while (iterator->hasNext()) {int item = iterator->next();std::cout << item << " ";}delete iterator;return 0;
}