c++计时方法

本文介绍了两种C++中的计时方法,包括使用<ctime>库的传统方法,可精确到毫秒,以及C++11引入的<chrono>库,能精确到微妙。特别是<chrono>库中的system_clock、steady_clock和high_resolution_clock,以及duration_cast用于类型转换,提供了更高效和精准的时间度量。
摘要由CSDN通过智能技术生成

传统计时方法

#include <ctime>
using namespace std;

clock_t start = clock();
// do something...
clock_t end   = clock();
cout << "花费了" << (double)(end - start) / CLOCKS_PER_SEC << "秒" << endl;

此方法可以精确到毫秒,输出样例:花费了0.123秒

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

#include <chrono>   
using namespace std;
using namespace chrono;

auto start = system_clock::now();
// do something...
auto end   = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout <<  "花费了" 
     << double(duration.count()) * microseconds::period::num / microseconds::period::den 
     << "秒" << endl;

此方法可以精确到微妙,输出样例:花费了0.123456秒

  • 关键词 auto 看上去很高大上,它是一个“自动类型”,可以理解成“万能类型”
  • system_clock 是 C++11 提供的一个 clock。除此之外,还有两个clock:steady_clock 和 high_resolution_clock
  • now( ) 表示计时的那“一瞬间”
  • duration_cast< > 表示类型转换
  • microseconds 表示微妙。除此之外,还有五种时间单位:hours, minutes, seconds, milliseconds, nanoseconds
  • numden分别表示分子(numerator)和分母(denominator)。在我给出的代码中,num等于1, den等于1,000,000
  • **count( ) **用来返回时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值