将测量的时间差与浮点进行比较

Compare measured time difference with float

本文关键字:比较 测量 时间差      更新时间:2023-10-16

我有一些代码,我想用c ++测量时差。一段时间后,保存在浮点变量中,我想开始一些东西。有没有办法将持续时间转换为浮点数或与浮点值进行比较?

下面是一些代码:

float maxDiff = 5;
auto start = std::chrono::high_resolution_clock::now();
//do something
auto finish = std::chrono::high_resolution_clock::now();
std::chrono::duration<double> elapsed = finish - start;
if(elapsed>=maxDiff
{//do something else}

以下代码有效:

float maxDiff = 5;
auto start = std::chrono::high_resolution_clock::now();
//do something
auto finish = std::chrono::high_resolution_clock::now();
std::chrono::duration<float> elapsed = finish - start;
if (elapsed.count() > maxDiff)
{
}

请注意,您可能希望使用std::chrono::steady_clock因为high_resolution_clock可能不稳定(您可以通过调用is_steady进行检查(,并且steady_clock通常对于大多数目的来说分辨率足够高,并且可以防止系统时钟更改的问题。