std::chrono 创建恒定时间流逝

std::chrono create constant time laps

如果两个时间点之间的差异大于某个固定时间,我该如何比较?我可以测量时间,但我无法用我想要的时间创建一个常数。

到目前为止我有以下代码:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now();
...
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now();
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2- t1);

我想创建一个常量并进行如下比较:

std::chrono::milliseconds maxTime;
maxTime = 5000;
if(elapsedTime > maxTime){
    //....
}

maxTime 的分配不起作用。 知道如何在不通过构造函数传递整数的情况下这样做吗?

您已将 maxTime 声明为 std::chrono::milliseconds - 这就是您不能为其分配 int 的原因。如果您有要分配给 maxTime 的毫秒数 - 让我们称之为 int myAmount - 使用 maxTime = std::chrono::milliseconds(myAmount); 当然,maxTime 不能声明 const那么.

您可以像这样更改您的代码:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now();
// ...
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now();
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1);
constexpr const std::chrono::milliseconds maxTime(5000); // <- this is the important change!
if(elapsedTime > maxTime){
    //...
}