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

基本概念

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

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

实现的模块有:

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

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

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

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

使用场景

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

实现

QT容器类

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

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

QT容器 C++容器
QList std::list
QVector std::vector
QMap std::map
QHash std::unordered_map
QSet std::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;
    }

相关推荐

  1. 设计模式——模式

    2024-05-14 05:56:08       35 阅读
  2. 设计模式(15):模式

    2024-05-14 05:56:08       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 05:56:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 05:56:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 05:56:08       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 05:56:08       20 阅读

热门阅读

  1. 阿里云ACP知识点汇总(36000字版)

    2024-05-14 05:56:08       9 阅读
  2. vim工作模式

    2024-05-14 05:56:08       10 阅读
  3. c 指针基础

    2024-05-14 05:56:08       8 阅读
  4. 缓存:Memcache与 Memcached的

    2024-05-14 05:56:08       8 阅读
  5. Spring boot使用websocket实现在线聊天

    2024-05-14 05:56:08       9 阅读
  6. 大数据技术栈2023:Apache Hadoop和Spark实战

    2024-05-14 05:56:08       11 阅读
  7. ffmpeg 读取流报错: Non-monotonous DTS in output stream

    2024-05-14 05:56:08       8 阅读
  8. Ribbon 策略

    2024-05-14 05:56:08       7 阅读
  9. 前端页面 贴边拖拽 盒子

    2024-05-14 05:56:08       9 阅读
  10. IDEA常用模板

    2024-05-14 05:56:08       11 阅读
  11. 【Pytest官方文档翻译及学习】1.1 安装和入门

    2024-05-14 05:56:08       11 阅读
  12. vue使用pdf

    2024-05-14 05:56:08       10 阅读
  13. vue h5项目预览pdf文件+电子签名

    2024-05-14 05:56:08       9 阅读