C++11计时器chrono

一、时钟clock

std::chrono::system_clock: 依据系统当前时间

std::chrono::steady_clock: 不能设置的时钟,以统一速率运行

std::chrono::high_resolution_clock: 高分辨率时钟

三个时钟类都提供一个静态成员函数now()用于获取当前时间,函数返回值是time_point类。

system_clock还提供静态成员函数to_time_t(),用于转换系统时间为std::time_t类型,可以用ctime()函数将时间转换成字符串格式(需要#include<ctime>):

auto t = std::chrono::system_clock::now();//获取系统当前时间
auto tt = std::chrono::to_time_t(t);//当前时间转换为time_t类型
string str_tt = std::ctime(&tt);//转换为字符串且自带换行符
cout << str_tt;

二、时间段duration

duration_cast类型转换函数:将duration转换成另一个类型的duration

count()成员函数:表示时间段长度

std::vector<int> v;
auto t1 = std::chrono::steady_clock::now();
for (int i = 1; i < 100; i++)
{
    int j = i*pow(i,2);
    v.push_back(i);
}
auto t2 = std::chrono::steady_clock::now();
auto time_used1 = std::chrono::duration_cast<microseconds>(t2-t1);
auto time_used2 = std::chrono::duration_cast<std::chrono::duration<double>>(t2-t1);
cout << "用时:" << time_used1.count() << "微秒" << endl;
cout << "等于:" << time_used2.count() << "秒" << endl

三、一种使用方式

#include <chrono>

chrono::steady_clock::time_point t1 = chrono::steady_clock::now();
//运行代码段
chrono::steady_clock::time_point t2 = chrono::steady_clock::now();
chrono::duration<double> time_used = chrono::duration_cast<chrono::duration<double>>(t2 - t1);
cout << "代码段运行用时" << time_used << "ms" << endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值