1.1. std::chrono库的主要功能 std::chrono是C++标准库中的一个组件,用于表示和处理时间。其功能就像是心理学中的感知系统,它可以为我们捕捉、量化并操作抽象的时间概念。这就如同我们的大脑可以理解和感知周围环境的时间流逝一样,这种感知和理解能力是人类进行日常活动所必需的。 如同马斯洛的需求层次理论中,生理需求...
先使用std::chrono获取当前系统时间,然后将当前系统时间转换为纪元时间std::time_t类型,之后使用std::localtime对std::time_t类型转换为本地时间结构体std::tm类型,最后使用strftime对时间进行格式化输出。 其中std::tm该结构包含了一个被分解为以下各部分的日历时间 struct tm { int tm_sec; // 秒,范围从 0...
时间单位可以是秒(seconds)、毫秒(milliseconds)、微秒(microseconds)或纳秒(nanoseconds),精度可以是整数类型(int、long)、浮点类型(float、double)等。例如,可以定义一个表示毫秒级别的时间段:std::chrono::duration<int, std::milli>。 创建duration对象:可以通过直接给Duration对象赋值来创建它。对Duration对象的赋值...
1structsteady_clock2{//wraps QueryPerformanceCounter3typedeflonglongrep;4typedef nano period;5typedef nanoseconds duration;6typedef chrono::time_point<steady_clock>time_point;7staticconstexprboolis_steady =true; steady_clock的刻度是1纳秒,起点并非1970-01-01 00:00:00 UTC,一般是系统启动时间,这就是问...
std::chrono::duration 表示一段时间,比如两个小时,12.88秒,半个时辰,一炷香的时间等 Rep表示一种数值类型,用来表示Period的数量,比如int float double。 Period是ratio类型,用来表示上面所说的单位精度,比如second milisecond。 chrono中宏定义了许多特例化了的duration: ...
typedef chrono::duration<rep, period> duration; typedef chrono::time_point<system_clock> time_point; static constexpr bool is_steady = false; 对于system_clock,其起点是epoch,即1970-01-01 00:00:00 UTC,其刻度是1个tick,也就是_XTIME_NSECS_PER_TICK纳秒。
要将这些计时器包装在std::chrono接口中,一种可能的方法是使用std::chrono::纳秒的周期,并将每个计时器的值转换为纳秒。另一种方法是使用浮点表示法。然而,这两种方法都会给now()函数带来(非常小的)开销,并(可能很小的)精度损失。 我试图寻求的解决方案是定义一组类来表示这样的“运行时常数”周期,按照与std:...
std::chrono::system_clock::time_point是一个模板类型,可以表示不同精度的时间。例如,我们可以用std::chrono::system_clock::time_point表示到纳秒级别的精确时间。 下表总结了一些time_point的主要方法: 为了更好地理解time_point,我们可以将其比喻为一个足球场上的地标。纪元(epoch)就像球场的一端,而time_poi...
std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now(); 计算经过的时间 我们可以通过比较两个时间点来计算经过的时间,就像精密计时器可以为我们提供精确到纳秒级别的时间间隔。请参考以下代码: std::chrono::high_resolution_clock::time_point end = std::chrono...
表示秒的std::chrono::duration字面量 (函数) operator""ms (C++14) 表示毫秒的std::chrono::duration字面量 (函数) operator""us (C++14) 表示微秒的std::chrono::duration字面量 (函数) operator""ns (C++14) 表示纳秒的std::chrono::duration字面量 ...