QT容器遍历分为Java和STL遍历

STL风格遍历器的语法类似于使用指针对数组的操作。我们可以使用++和--运算符使遍历器移动到下一位置,遍历器的返回值是指向这个元素的指针。例如QVector的iterator返回值是 T *类型,而const_iterator返回值是 const T * 类型(数据为常量,返回值不能修改)。

一个典型的使用STL风格遍历器的代码是:

QList::iterator i = list.begin();

while (i != list.end()) {

*i = qAbs(*i);

++i;

}

对于某些返回容器的函数而言,如果需要使用STL风格的遍历器,我们需要建立一个返回值的拷贝,然后再使用遍历器进行遍历。如下面的代码所示:

QList list = splitter->sizes();

QList::const_iterator i = list.begin();

while (i != list.end()) {

doSomething(*i);

++i;

}

在C++中,很多人都会说,要避免这么写,因为最后一个return语句会进行临时对象的拷贝工作。如果这个对象很大,这个操作会很昂贵。所以,资深的C++高手们都会有一个STL风格的写法:

void sineTable(std::vector &vect)

{

vect.resize(360);

for (int i = 0; i &

qlist的遍历_QT 容器及遍历相关推荐

  1. list遍历_Qt 容器类之遍历器和隐式数据共享

    Qt 容器类之遍历器和隐式数据共享 前面说过,Qt 容器类提供了两种遍历器:Java 风格的和 STL 风格的.前者比较容易使用,后者则可以用在一些通过算法中,功能比较强大. 对于每一个容器类,都有与 ...

  2. 同时遍历多个dataframe_Java面试-容器的遍历

    当我们用增强for循环遍历非并发容器(HashMap.ArrayList等),如果修改其结构,会抛出异常ConcurrentModificationException,因此在阿里巴巴的Java规范中有 ...

  3. WPF遍历当前容器中某种控件的方法

    原文:WPF遍历当前容器中某种控件的方法 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m0_37591671/article/details/79 ...

  4. 由先序遍历和中序遍历得到后序遍历和层次遍历(二叉树)

    前几天写了1020 Tree Traversals (25 分)-PAT甲级这个题目,明白了如何由二叉树的后序遍历和中序遍历得到先序遍历和层次遍历.受这道题启发,思考了一下如何由二叉树的先序遍历和中序 ...

  5. Java实现前序遍历,中序遍历,后序遍历,层序遍历

    1.遍历思想 前序遍历首先访问根节点,然后访问左子树,最后访问右子树. 中序遍历先访问左子树,然后访问根节点,最后访问右子树. 后续遍历先访问左子树,然后访问右子树,最后访问根节点. 层序遍历则是从上 ...

  6. python实现二叉树的重建2 之由中序遍历和后序遍历重建

    前言 通过上一节对python实现二叉树的重建1 之由前序遍历和中序遍历重建,我相信我们再来做这个问题就不难了,完全可以照猫画虎的来实现,具体的原理几乎是一样的,直接上代码了 code # 通用解法d ...

  7. python实现二叉树的重建1 之由前序遍历和中序遍历重建

    前言 此题是关于树的面试题目的常见题型,题目的含义很清晰,这个就不用多说了 解法 关于这道题的解法有很多不同的样式,通用的解法是这样的: 假如现在我们有如下两个遍历的情况 preorder: [1, ...

  8. 通过前序遍历和中序遍历构建二叉树 python实现

    前言 通过前序遍历和中序遍历构建二叉树的原理,主要是找前序遍历根节点在中序遍历中的位置,然后将二叉树而成左子树和右子树,然后依次进行这样的操作,思路还是比较简单的 代码 class Node:def ...

  9. 刷题:二叉树的遍历方式及根据遍历结果还原二叉树

    二叉树的遍历方式及根据遍历结果还原二叉树 1. 二叉树的遍历方式 2. 根据遍历结果还原二叉树 2.1 已知先序遍历和中序遍历还原二叉树 2.2 已知后序遍历和中序遍历还原二叉树 实验代码: 1. 二 ...

最新文章

  1. [傅里叶变换及其应用学习笔记] 二十六. 高维傅里叶变换的推导
  2. SAP 作业类型主数据
  3. 通过mtd读写flash_敏矽微电子Cortex-M0学习笔记11-FLASH存储器
  4. 一层循环时间复杂度_数据结构:二叉排序树的前/中/后序遍历(递归与循环两种版本)...
  5. PCB设计中焊盘的种类,你都见过几种?
  6. 最长上升子序列三种模板(n^2模板,二分模板,树状数组模板)
  7. Linux socket编程,对套接字进行封装
  8. 存储过程实现可扩展灵活接口
  9. 数据挖掘算法之离散化和二元化
  10. 将PDF论文的公式截图后转成Word可编辑公式
  11. Jmeter性能测试之命令行执行和生成测试报告
  12. matlab中普通电感,matlab电感在哪
  13. 发动机冒黑烟_发动机冒黑烟常见的23个原因和解决方法
  14. 域名注册必须实名认证 《互联网域名管理办法》11月1日实施
  15. 张同须全面介绍中国移动5G+AI新基建布局(附PPT)
  16. 关于RundownProtect到底是什么东西
  17. python字体类型arial_python-3.x - 为什么我的font.name属性不影响使用Python-pptx制作的ppt上的字体? 我总是得到arial字体 - 堆栈内存溢出...
  18. SQL入门之第二一讲——IF函数的使用
  19. 光武1号守卫盾,一款让优秀非凡的重疾产品【保通保险】
  20. ESD静电二极管端口信号防护应用产品型号——SM712

热门文章

  1. java花卉网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  2. AntMonitor-移动端流量监控系统的实现
  3. KeyValuePair2
  4. Linux阅码场 - Linux内核月报(2020年09月)
  5. 【转】区分当前用户SIM卡是移动还是联通
  6. 【Python案例】——制作一个简易的音乐播放器【轻松入门】
  7. 一些知识概念,十进制、八进制和二进制转换
  8. 梯度下降:BGD、SGD、MBGD的区别
  9. 魔法猪系统重装大师怎么使用
  10. 查询手机或邮箱在哪些网站注册过