首页 > 编程语言 >C++ 计时方法 std::chrono

C++ 计时方法 std::chrono

时间:2023-06-20 12:15:02浏览次数:47  
标签:std clock auto chrono C++ 计时 now

计时的作用:测试某一段代码的运行时间,时间越短,则性能相对越高。

C++11 标准的”最佳计时方法“的代码:

1 #include <chrono>   
2 using namespace std;
3 using namespace chrono;
4  
5 auto start = system_clock::now();
6 // do something...
7 auto end   = system_clock::now();
8 auto duration = duration_cast<microseconds>(end - start);
9 cout <<  "Spent" << double(duration.count()) * microseconds::period::num / microseconds::period::den << " seconds." << endl;

此方法可以精确到微妙,如花费了0.123456秒

  • 关键词 auto 是一个“自动类型”,auto可以接受任何类型
  • 我们获得时间点主要是通过clock时钟获得的。一共有三个时钟,其中system_clock 是 C++11 提供的一个 clock。(除此之外,还有两个clock:steady_clock 和 high_resolution_clock)
  • now( ) 表示计时的那一时刻
  • duration_cast< > 表示类型转换
  • microseconds 表示微秒。另外的五种时间单位:hours, minutes, seconds, milliseconds, nanoseconds
  • num 和 den分别表示分子(numerator)和分母(denominator)。在上面的代码中,num=1, den=1,000,000
  • count( ) 用来返回时间

C++11的 #include< chrono >和传统的 #include < ctime >相比,代码量较多,但是精度也更高。

标签:std,clock,auto,chrono,C++,计时,now
From: https://www.cnblogs.com/ybqjymy/p/17493259.html

相关文章

  • C++ 计时器:chrono库介绍
    C++11有了chrono库,可以在不同系统中很容易的实现定时功能。要使用chrono库,需要#include,其所有实现均在std::chrononamespace下。注意标准库里面的每个命名空间代表了一个独立的概念。chrono是一个模版库,使用简单,功能强大,只需要理解三个概念:duration、time_point、clock一、时......
  • 【剑指 Offer】数组中重复的数字(C++_Easy_遍历/哈希/快排/原地)
    题目在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。测试样例输入:[2,3,1,0,2,5,3]输出:2或3限制2<=n<=100000题解题解一:遍历对vector容器......
  • 【计算机算法设计与分析】线性时间选择(C++_分治递归)
    问题描述给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k小的元素。思路线性时间选择有两种方法:(1)随机选择快排的标准元素。(2)将集合分为n个由五个元素组成的集合,对每个五元素集合求其中位数,再对所有的五元素集合的中位数求其中位数,作为快排的标准元素。CodeV-1(Ran......
  • 【剑指 Offer】用两个栈实现队列(C++_Easy_栈/队列)
    1.题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回-1)2.示例2.1示例1输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”......
  • 【计算机算法设计与分析】6-5 最小重量机器设计问题(C++_回溯法/分支限界法)
    问题描述设某一机器由n个部件组成,每一种部件都可以从m个不同的供应商处购得。设wij是从供应商j处购得的部件i的重量,cij是相应的价格。设计一个优先队列式分支限界法,给出总价格不超过d的最小重量机器设计。对于给定的机器部件重量和机器部件价格,设计一个优先队列式分......
  • 【蓝桥杯_真题演练】换零钞(C++_遍历)
    题目x星球的钞票的面额只有:100元,5元,2元,1元,共4种。小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍,剩下的当然都是5元面额的。银行的工作人员有点为难,你能帮助算出:在满足小......
  • 【蓝桥杯_真题演练】第九届C/C++省赛B组_C-乘积尾零(C++_数论)
    Problem如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?56504542355447394641143871907390432927587949611356595245743230514434670435949937117368663397475975573070228714539899148657223135117040145510512072928809......
  • PTA_乙级_1015 德才论(C++_模拟_快排)
    宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出3个......
  • P3371 【模板】单源最短路径(弱化版)(C++_SPFA算法_链式向前星)
    题目背景本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步P4779。题目描述如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度。输入格式第一行包含三个整数n,m,s,分别表示点的个数、有向边的个数、出发点的编号。接下来m行每行包含三个......
  • C++ primer plus学习之第二章
    1.引用:intival=1024;int&refval=ival;//正确,refval时ival的别名int&re;//错误,引用必须被初始化int&ii=42;//错误:不能为非常量引用绑定字面值constint&ii=42;//正确:可以为常量引用绑定字面值2.初始化空指针int*p=0;int*p=NULL;int*p=nullptr;//最好用这个任何非零指......