📜  C++中的Chrono(1)

📅  最后修改于: 2023-12-03 15:14:02.307000             🧑  作者: Mango

C++中的Chrono

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库还提供了一些函数,可以使用它们在一定的时间间隔后执行另一个函数。

std::chrono::duration_cast

duration_cast可用于将一种时间类型转换为另一种时间类型。

chrono::seconds sec(2);
chrono::nanoseconds ns = chrono::duration_cast<chrono::nanoseconds>(sec);
std::this_thread::sleep_for

可以使用std::this_thread::sleep_for在一定的时间间隔后暂停程序的执行。

// 暂停程序执行 2 秒钟
chrono::seconds sec(2);
this_thread::sleep_for(sec);