C++的计时器chrono

头文件:
namespace:std::chrono

基本用法

#include 
#include 
#include 
#include 
using namespace std;

int main() {
    //auto start = chrono::system_clock::now();
    auto start = chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    //auto end = chrono::system_clock::now();
    auto end = chrono::high_resolution_clock::now();
    std::chrono::duration diff = end - start;
    auto nanos = std::chrono::duration_cast(end - start);
    chrono::duration fp_nanos = end - start;
    cout<<"use "<

其中now返回的是一个std::chrono::time_point类型,默认情况下duration记录当前的时间段有多少秒
chrono提供了三个时钟,一般用system_clock,想要高精度就用high_resolution_clock

Duration

duration定义为

template<
    class Rep, 
    class Period = std::ratio<1> 
> class duration;

其中Rep表示计次数的算数类型,可以是整数或者小数,比如设置为double就能表示以小数计时。
Period表示被包含时长类型的,一般用于不同时长类型的转换
比如文档中给出的不同时长单位定义:


chrono时长类型

要改变duration的计时单位可以使用duration_cast

你可能感兴趣的:(C++的计时器chrono)