• Qt迭代器(Java类型和STL类型)详解

    迭代器为访问容器类里的数据项提供了统一的方法,Qt 有两种迭代器类:Java 类型的迭代器STL 类型的迭代器

    两者比较,Java 类型的迭代器更易于使用,且提供一些高级功能,而 STL 类型的迭代器效率更高。

    Java 类型迭代器

    对于每个容器类,有两个 Java 类型迭代器:一个用于只读操作,一个用于读写操作,各个Java 类型的容器类见表 1。

    表 1 Java类型的迭代器类
    容器类 只读迭代器 读写迭代器
    QList<T>, QQueue<T>  QListItcrator<T> QMutableListItcrator<T>
    QLinkedList<T> QLinkedListIterator<T> QMutableLinkedListIterator<T>
    QVector<T>, QStack<T> QVectorllcrator<T> QMutableVectorIterator<T>
    QSet<T> QSetItcrator<T> QMutableSetItcrator<T>
    QMap<Key, T>, QMultiMap<Key, T> QMapIterator<Key, T> QMutableMapIterator<Key, T>
    QHash<Key, T>, QMultiHash<Key, T> QHashIterator<Key, T> QMutablcHashlterator<Key, T>

    QMap 和 QHash 等关联容器类的迭代器用法相冋,QList 和 QLinkedList、QSet 等容器类的用法相同,所以下面只以 QMap 和 QList 为例介绍迭代器的用法。

    顺序容器类的迭代器的使用

    Java 类型迭代器的指针不是指向一个数据项,而是在数据项之间,迭代器指针位置示意图如图 2 所示。


    Java类型迭代器位置示意图
    图 2 Java类型迭代器位置示意图

更多...

加载中...