当前位置: 首页 > news >正文

QHashIterator-官翻

QHashIterator Class

template <typename Key, typename T> class QHashIterator

QHashIterator 类为 QHash 和 QMultiHash 提供 Java 风格的常量迭代器。更多内容…

头文件:#include
qmake:QT += core
  • 所有成员列表,包括继承的成员
  • 废弃的成员

公共成员函数

QHashIterator(const QHash<Key, T> &hash)
QHashIterator<Key, T> &operator=(const QHash<Key, T> &container)
boolfindNext(const T &value)
boolhasNext() const
const Key &key() const
QHashIterator::Itemnext()
QHashIterator::ItempeekNext() const
voidtoBack()
voidtoFront()
const T &value() const

详细描述

QHash 同时提供 Java 风格迭代器 和 STL 风格迭代器。Java 风格迭代器比 STL 风格迭代器更高级,更容易使用;同时也略微低效。

QHashIterator<Key, T> 用来遍历 QHash (或 QMultiHash)。如果想在遍历时修改哈希表,要使用 QMutableHashIterator。

QHashIterator 构造函数接受 QHash 作为参数。构造后,迭代器位于哈希表的最开始位置(第一个元素之前)。下面的例子演示如何顺序遍历所有元素:

QHash<int, QWidget *> hash;
...
QHashIterator<int, QWidget *> i(hash);
while (i.hasNext()) {i.next();qDebug() << i.key() << ": " << i.value();
}

next() 函数返回哈希表中的下一个元素并将迭代器前移。key() 和 value() 函数返回跳过的最后一个元素的键和值。

与 STL 风格迭代器不同,Java 风格迭代器指向元素之间而不是直接指向元素。第一次调用 next() 前移迭代器到第一个和第二个元素之间的位置,并返回第一个元素;第二次调用 next() 前移迭代器到第二个和第三个元素之间的位置;以此类推。

img

如果想查找特定值的所有实例,循环使用 findNext()。例如:

QHashIterator<int, QWidget *> i(hash);
while (i.findNext(widget)) {qDebug() << "Found widget " << widget << " under key "<< i.key();
}

同一哈希表可以使用多个迭代器。如果在 QHashIterator处于活动状态时修改哈希表,QHashIterator 将继续在原哈希表上遍历,而忽略修改后的副本。

另请参阅 QMutableHashIterator 和 QHash::const_iterator.

成员函数文档

bool QHashIterator::findNext(const T &value)

从当前迭代器位置开始向前查找值 value。如果找到值为 value 的键值对,返回 true;否则返回 false

调用该函数后,如果找到值 value,迭代器将被移动到匹配元素的后面;否则,迭代器将被移动到容器的末端。

const Key &QHashIterator::key() const

调用遍历函数((next(),findNext())后,该函数返回跳过的最后一个元素的键。

另请参阅 value()。

bool QHashIterator::hasNext() const

如果该迭代器后面至少有一个元素,返回 true,即该迭代器不在容器的末端;否则返回 false

另请参阅 next()。

void QHashIterator::toBack()

将迭代器移动到容器的末端(最后一个元素之后)。

另请参阅 toFront()。

void QHashIterator::toFront()

将迭代器移动到容器的前端(第一个元素之前)。

另请参阅 toBack() 和 next()。

QHashIterator<Key, T> &QHashIterator::operator=(const QHash<Key, T> &container)

将迭代器关联到 container 来遍历哈希表。迭代器将被移动到哈希表的前端(第一个元素之前)。

另请参阅 toFront() 和 toBack()。

QHashIterator::QHashIterator(const QHash<Key, T> &hash)

构造一个迭代器来遍历 hash。迭代器将被移动到哈希表的前端(第一个元素之前)。

另请参阅 operator=()。

QHashIterator::Item QHashIterator::next()

返回下一个元素并将迭代器向前移动一个位置。

对返回值调用 key() 获取元素的键,调用 value() 获取元素的值。

对位于容器末端的迭代器调用该函数将导致未定义结果。

另请参阅 hasNext() 和 peekNext()。

QHashIterator::Item QHashIterator::peekNext() const

不移动迭代器而返回下一个元素。

对返回值调用 key() 获取元素的键,调用 value() 获取元素的值。

对位于容器末端的迭代器调用该函数将导致未定义结果。

另请参阅 hasNext() 和 next()。

const T &QHashIterator::value() const

调用遍历函数(next(),findNext())后,该函数返回跳过的最后一个元素的值。

另请参阅 key()。

http://www.lryc.cn/news/16879.html

相关文章:

  • [qiankun]-部署后线上问题
  • 位图数组 布隆过滤器
  • 多线程Thread常用方法和状态
  • Codeforces Round #836 (Div. 2)
  • Python学习之项目实践: 写一个MP3播放器
  • RocketMQTemplate 实现消息发送
  • 教师干货丨这5款微课必备提效神器,我要告诉全世界!
  • timm使用swin-transformer
  • 【java基础】java八大基本数据类型和运算符
  • Mybatis源码学习笔记(四)之Mybatis执行增删改查方法的流程解析
  • 浅谈测试用例设计
  • python 利用装饰器实现类似于flask路由
  • git 拉取远程分支到本地
  • Answering Multi-Dimensional Range Queries under Local Differential Privacy
  • 手把手搭建springboot项目05-springboot整合Redis及其业务场景
  • Flutter基础语法(六)var、final、const、late
  • Linux之安装node
  • 二叉树、二叉搜索树、二叉树的最近祖先、二叉树的层序遍历【零神基础精讲】
  • 【算法】【数组与矩阵模块】求最长可整合子数组和子数组的长度
  • 数据结构:循环队列的实现(leetcode622.设计循环队列)
  • [qiankun]实战问题汇总
  • Kafka(6):服务端常用参数配置
  • 2023爱分析·云原生智能运维中台市场厂商评估报告:秒云(miaoyun.io)
  • hadoop容器化部署
  • 【07-JVM面试专题-JVM运行时数据区的虚拟机栈你知道吗?它的基本结构是什么呢?你知道栈帧的结构吗?那你说说动态链接吧?】
  • Java性能优化-GC优化基础
  • 【Tomcat】IDEA编译Tomcat源码-手把手教程
  • 如何弄小程序?公司企业可以这样做小程序
  • 【Git】IDEA集合Git和码云
  • [USACO03FALL / HAOI2006] 受欢迎的牛 G(C++,强连通分量)