服装网站建设平台12306网站多少钱做的
news/
2025/10/1 6:05:19/
文章来源:
服装网站建设平台,12306网站多少钱做的,自建网站营销是什么,微信微网站模板动机#xff08;Motivaton#xff09;
在软件构建过程中#xff0c;集合对象内部结构常常变化各异。但对于这些集合对象#xff0c;我们呢希望在不暴露其内部结构的同时#xff0c;可以让外部客户代码透明地访问其中包含的元素#xff1b;同时这种“透明遍历”也为“同一…动机Motivaton
在软件构建过程中集合对象内部结构常常变化各异。但对于这些集合对象我们呢希望在不暴露其内部结构的同时可以让外部客户代码透明地访问其中包含的元素同时这种“透明遍历”也为“同一种算法在多种集合对象上进行操作”提供了可能。
使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中集合对象”提供一种优雅的方式。
模式定义
提供一种方法顺序访问一个集合对象中的各个元素而又不暴露稳定该对象内部表示。 #include iostreamtemplatetypename T
class Iterator {
public:virtual void first() 0;virtual void next() 0;virtual bool isDone() 0;virtual T current() 0;
};templatetypename T
class MyCollection {
public:IteratorT* GetIterator() {//...}
};templatetypename T
class CollentionIterator : public IteratorT {MyCollectionT mc;
public:CollentionIterator(const MyCollectionT c) : mc(c) {}void first() override {//...}void next() override {//...}void isDone() override {//...}T current() override {//...}
};int main() {MyCollectionint mc;Iteratorint* iter mc.GetIterator();for (iter-first(); !iter-isDone(); iter-next()) {std::cout iter-current() std::endl;}
}
要点总结
迭代抽象访问一个集合对象的内容而无需暴露他的内部表示
迭代多态为遍历不同的集合结构提供一个统一的接口从而支持同样的算法在不同的结构上进行操作
迭代器的健壮性考虑遍历的同时更改迭代器所在集合机构会导致问题。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923536.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!