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类型迭代器位置示意图

本文标题:Qt迭代器(Java类型和STL类型)详解

本文地址:http://www.hosteonscn.com/4157.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注