📅  最后修改于: 2023-12-03 15:14:02.307000             🧑  作者: Mango
C++中的Chrono库提供了方便的时钟和定时功能。它是C++11标准的一部分,可以用于处理时间点,时间间隔和时间基础设施。本文将介绍Chrono库的基本用法以及一些最常用的函数。
要使用Chrono库,必须包含头文件
#include <chrono>
Chrono库主要位于std命名空间中。
using namespace std;
时间点是表示时间的数据类型,可以是任何时钟所生成的值。时间点类型有不同的精度:高精度和低精度,取决于所选的时钟。时间点类型和时钟的选择是在编译时选择的。
系统时钟是Chrono库默认提供的时钟之一,可以通过关键字system_clock来访问。它表示当前系统中的时间。
chrono::system_clock::time_point now = chrono::system_clock::now();
系统时钟的最小时间点是可表示的最早时间点。
chrono::system_clock::time_point min_time = chrono::system_clock::time_point::min();
系统时钟的最大时间点是可表示的最晚时间点。
chrono::system_clock::time_point max_time = chrono::system_clock::time_point::max();
可以使用std::chrono::duration来确定两个时间点之间的时间间隔。
chrono::system_clock::time_point start = chrono::system_clock::now();
// 一些操作...
chrono::system_clock::time_point end = chrono::system_clock::now();
chrono::duration<double> diff = end - start;
Chrono库提供了一些时间单位以便于使用时间值。
chrono::seconds sec(2);
chrono::milliseconds ms(200);
chrono::microseconds us(2000);
chrono::nanoseconds ns(2000000);
Chrono库还提供了一些函数,可以使用它们在一定的时间间隔后执行另一个函数。
duration_cast可用于将一种时间类型转换为另一种时间类型。
chrono::seconds sec(2);
chrono::nanoseconds ns = chrono::duration_cast<chrono::nanoseconds>(sec);
可以使用std::this_thread::sleep_for在一定的时间间隔后暂停程序的执行。
// 暂停程序执行 2 秒钟
chrono::seconds sec(2);
this_thread::sleep_for(sec);