首页 > 其他分享 >容器遍历五种方式

容器遍历五种方式

时间:2023-09-26 11:57:00浏览次数:37  
标签:std 容器 遍历 cout auto 耗时 vector 五种

容器遍历

#include <QElapsedTimer>
std::vector<int> vector(999999,999);
QElapsedTimer time;//测试耗时时间 类 用法
time.start()j;
time.elapsed();

第一种

利用for循环,获取容器头和尾地址,从头开始遍历直到末尾
    for(auto it = vector.begin(); it != vector.end(); it++)
    {
        std::cout << *it << " ";
    }
  • 耗时较长,排名第四 212

第二种

利用for循环,加上引用,大大提高运行效率

    for(auto &it : vector)
    {
        std::cout << it << " ";
    }
  • 耗时较短,排名第一 0

第三种

利用foreach遍历,未加上引用,运行效率较低

    foreach (auto it, vector) {
        std::cout << it  << " ";
    }
  • 耗时较长,排名第三 20

第四种

利用for循环,用索引值访问数据

    for(int i = 0; i < a; i++)
    {
        std::cout << vector[i] << " ";
    }
  • 耗时较短,排名第二 2

第五种

利用whlie循环,通过地址访问,耗时最长

    while(it != vector.end())
    {
        std::cout << *it << " ";
        it++;
    }
  • 耗时最长,排名第五 214

总结:

  • 使用引用遍历最快,其次是索引访问,最后是地址遍历
  • 耗时时间跟使用循环无关,跟遍历访问获取数据有关

标签:std,容器,遍历,cout,auto,耗时,vector,五种
From: https://www.cnblogs.com/wangbaishi123/p/17729750.html

相关文章

  • 如何阻止os.walk遍历所有子目录?
    果只想搜索指定的目录。最好使用os.listdir,然后只过滤os.path.isfile,如下所示:importosmy_path='/entire/path/to/files/'file_list=[]forfilenameinos.listdir(my_path):filepath=os.path.join(my_path,filename)ifos.path.isfile(filepath):fileList.a......
  • Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&
    SpringBoot目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)SpringBoot目录遍历(CVE-2021-21234)漏洞简介spring-boot-actuator-logview是一个简单的日志文件查看器作为SpringBoot执行器端点,在0.2.13版本之前存......
  • 查看docker容器使用的cpu和内存
    转载请注明出处:使用dockerps命令列出正在运行的Docker容器,并获取目标容器的ID或名称。使用dockerstats<容器ID或名称>命令来实时监测指定容器的资源使用情况。该命令将显示容器的CPU利用率、内存使用量、网络流量等信息。例如,要查看名为my_container的容器的资源使用情......
  • 在哪里可以找到MySQL容器的官方镜像
    如果您在容器上部署MySQL,那么首要任务之一就是找到正确的镜像。有一定程度的混乱,尤其是当我们试图帮助部署有问题的人时。例如,当人们说我使用的是官方的docker镜像…这到底意味着什么?DockerHub,提供他们的官方形象(https://hub.docker.com/_/mysql),但这不是我们Oracle的MySQL团......
  • 在哪里可以找到官方的mysql容器图像?
    如果您在容器上部署MySQL,那么首要任务之一就是找到正确的镜像。有一定程度的混乱,尤其是当我们试图帮助部署有问题的人时。例如,当人们说我使用的是官方的docker镜像…这到底意味着什么?DockerHub,提供他们的官方形象(https://hub.docker.com/_/mysql),但这不是我们Oracle的MySQL团......
  • Java容器类详解
    Java的容器在Java中,我们想要保存对象可以使用很多种手段。最简单的就是数组。但是数组具有固定的尺寸,而通常来说,程序总是在运行时根据条件来创建对象,我们无法预知将要创建对象的个数以及类型,所以Java推出了容器类来解决这一问题。Java容器的基本概念Java容器类库是用来保存对象的,他......
  • 完全二叉树的创建与遍历
    创建一棵完全二叉树(递归方式)(创建方法仅使用与完全二叉树)层序遍历完全二叉树(遍历算法适用于所有二叉树):利用队列FIFO的性质中序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)先序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)后序遍历完全二叉树(递归方式,遍历算法适用于所......
  • 12张图一次性搞懂高性能并发容器ConcurrentLinkedQueue
    12张图一次性搞懂高性能并发容器ConcurrentLinkedQueue前言上篇文章聊到并发集合CopyOnWeiteArrayList的实现与特点,其不足之处是不适合写多的场景也不适合并发量大的场景本篇文章来聊聊并发场景下高性能的ConcurrentLinkedQueue阅读本文大概需要10分钟在阅读本文前,需要理解CAS......
  • Docker容器数据卷(命令的方式)
    Docker容器数据卷(持久化数据+数据共享)具体操作:1-创建连接:1-dockerimages//查看镜像名字2-(小提示:pwd可以查看绝对路径)公式:dockerrun-it-v宿主机绝对目录(文件):容器内绝对目录(文件)[镜像名字]公式2:dockerrun-it-v宿主机绝对目录(文件):容器内绝......
  • Docker Compose 容器编排
    docker-compose是docker官方的开源项目,负责实现对docker容器集群的快速编排简单的理解就是对多个容器进行快速的管理,如一键启动、一键stop等等……dockercompose官网下载安装老版本的需要去官网下载安装,新版本的直接使用yum进行安装即可[root@localhost~]#yum-yinstalldocke......