chrono 是一个与时间和日期相关的库,通过chrono库可以很方便对日期和时间进行一系列的处理。
chrono中有三种不同的时钟,分别是system_clock(系统时钟),steady_clock(稳定时钟),high_resolution_clock(高精度时钟)
system_clock(系统时钟):代表真实世界的挂钟时间,具体指依赖于系统。保证提供的时间值是一个可读的时间。
steady_clock的刻度是1纳秒;steady_clock的作用是为了得到不随系统时间修改而变化的时间间隔,保证先后得到的时间是递增的;
high_resolution_clock(高精度时钟):精确到纳秒(nanosecond)
主要使用它的一个now()用法:即high_resolution_clock::now(),使用auto可以接受任何类型,称”自动类型“。
duration:时间间隔
count():获取时钟周期数的方法
time_point:表示时间点,用来获取从纪元开始所经过的duration和当前时间,可以做一些时间的比较和算术运算。
两个time_point支持相加减操作。但是不同clock的time_point是不能相加减的。
std::chrono::duration_cast < > ( ) / /将()中的时间单位强制转换为< >中的时间单位
如:
std::chrono::microseconds timeelapsed = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now() - this->lastPositionUpdateTime);
上述语句实现了将high_resolution_clock::now()单位转化为microseconds单位