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){
//...
}
如果两个时间点之间的差异大于某个固定时间,我该如何比较?我可以测量时间,但我无法用我想要的时间创建一个常数。
到目前为止我有以下代码:
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){
//...
}