C++的计时——Chrono

1.头文件:

  • #include <iostream>:用于控制台输入/输出。
  • #include <chrono>:用于时间点和持续时间计算。

2.计时器结构:

  • 包含startendduration成员:
    • startend是表示计时器开始和结束的时间点。
    • durationendstart之间的时差。
  • 构造函数
    • 使用创建结构对象时的时间设置start为当前时间。std::chrono::high_resolution_clock::now()
  • 析构函数
    • Timer当对象超出范围时自动调用。
    • 设置end为当前时间并计算和start之间的差值。
    • 转换duration为毫秒并将经过的时间打印到控制台。

3.Function:

  • 声明一个Timer对象,启动计时器。
  • 包含一个打印“Hello\n”100 次的循环。
  • 当函数结束时,Timer对象超出范围,触发其析构函数来测量和打印经过的时间。

4.main功能:

  • 调用Function,其中的计时器测量循环的执行时间。
  • 等待用户输入(std::cin.get())以保持控制台打开。
#include <iostream>
#include <chrono>

struct    Timer
{
    std::chrono::time_point<std::chrono::steady_clock>start,end;
    std::chrono::duration<float> duration;
    Timer()
    {
        start = std::chrono::high_resolution_clock::now();
    }

    ~Timer()
    {
        end = std::chrono::high_resolution_clock::now();
        duration = end - start;
        
        float ms = duration.count() * 1000.0f;
        std::cout << "Timer took" << ms << "ms" <<std::endl;
    }
};

void Function()
{
    Timer timer;
    for(int i = 0;i < 100;i++)
        std::cout << "Hello\n";
}

int main()
{
    Function();
    std::cin.get();
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值