C++ QT设计模式:迭代器模式

基本概念

迭代器模式(Iterator Pattern)是一种行为型设计模式,提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

迭代器模式将遍历元素的责任封装到一个独立的迭代器对象中,使得聚合对象和遍历算法分离开来。

实现的模块有:

  • Iterator(迭代器):定义了访问和遍历元素的接口。

  • ConcreteIterator(具体迭代器):实现了 Iterator 接口,具体定义了如何实现遍历算法。

  • Aggregate(聚合器):定义创建迭代器对象的接口。

  • ConcreteAggregate(具体聚合器):实现了聚合器接口,具体定义了 Aggregate 创建相应迭代器对象的逻辑。

使用场景

  • 当希望访问集合对象,却不希望暴露其内部结构时。
  • 当需要对一个集合对象提供多种遍历方式时。
  • 当需要为不同的集合对象提供统一的遍历接口时。

实现

QT容器类

QT容器类提供了相应的迭代器接口,可以方便地对容器中的元素进行遍历和操作。

以下是QT容器所对应的C++容器:

QT容器C++容器
QListstd::list
QVectorstd::vector
QMapstd::map
QHashstd::unordered_map
QSetstd::unordered_set

QT 的迭代器模板为:

QT容器类::iterator

比如 QList 的迭代器使用为:

    QList<int> list;
    list << 1 << 2 << 3 << 4 << 5;

    QList<int>::iterator iter;
    for (iter = list.begin(); iter != list.end(); ++iter) {
        qDebug() << *iter;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值