如何将 int 转换为 chrono 毫秒

how to convert int to chrono milliseconds

我有一个毫秒类型的变量,我想将它设置为等式。这是我到目前为止所做的。它编译并运行但是当它遇到这一行时它停止输入下面的 if 语句。

time = duration<int>(750-(lvl*50));

另一件需要注意的事情是我确实有一个 if 语句,这也可能是我比较不同数据类型的问题的一部分。这是 if 语句:

if(time_since_last >= time) {

距离上一个变量的时间是不同2的时间差high_resolution_clock::now()

您不应该使用间隔进行比较。请改用绝对值。例如:

next_time = curr_time + duration<int>( ... etc ... );
if( time > next_time ) {
    // do something
}

你可以尝试这样的事情。要以毫秒为单位将整数值转换为 chrono,请使用 std::chrono::milliseconds(value);

auto old_time = std::chrono::high_resolution_clock::now();
this_thread::sleep_for(chrono::milliseconds(500));
auto new_time = std::chrono::high_resolution_clock::now();
auto time_since_last = std::chrono::duration_cast<chrono::milliseconds>(new_time - old_time);   
cout << time_since_last.count();

int value = 1000;
auto time = std::chrono::milliseconds(value);
cout << "   " <<time.count();

if (time_since_last >= time) {
    /* do something */
}
#include <chrono>
...
milliseconds time = (750ms-(lvl*50ms));

我假设您使用整数 (lvl) 控制一些延迟(时间)