迭代器模式

问题描述:封装遍历

使用设计模式的目的之一就是适应不断变化的程序,封装变化。针对变化的不同,我们采用了对应的模式,如
封装行为:策略模式
封装构造:工厂模式
封装算法:模板方法模式
集合类型有很多,如队列,堆栈,树,链表。数据结构不同遍历的方式不同,迭代器封装集合遍历的变化,实现了相同的接口,这就是迭代器。

解决方法–迭代器模式

java迭代器

在这里插入图片描述
在这里插入图片描述

C++迭代器

C++的迭代器的使用更像是指向集合的指针,通过begin( )函数获得指向集合第一个成员的迭代器,end()函数获得指向数组最后一个的迭代器。

#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> v;  //v是存放int类型变量的可变长数组,开始时没有元素
    for (int n = 0; n<5; ++n)
        v.push_back(n);  //push_back成员函数在vector容器尾部添加一个元素
    vector<int>::iterator i;  //定义正向迭代器
    for (i = v.begin(); i != v.end(); ++i) {  //用迭代器遍历容器
        cout << *i << " ";  //*i 就是迭代器i指向的元素
        *i *= 2;  //每个元素变为原来的2倍
    }
    cout << endl;
    //用反向迭代器遍历容器
    for (vector<int>::reverse_iterator j = v.rbegin(); j != v.rend(); ++j)
        cout << *j << " ";
    return 0;
}

C++11和java现在都可以通过for语句遍历了,而且形式一样。

//vecNum 的类型是Int类型的一种集合
for(int item : vecNum)
{
  cout <<  item << " ";  //c++
  
}

总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值