如何将 int 转换为 chrono 毫秒

10 c++ c++-chrono

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

time = duration<int>(750-(lvl*50));
Run Code Online (Sandbox Code Playgroud)

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

if(time_since_last >= time) {
Run Code Online (Sandbox Code Playgroud)

自最后一个变量以来的时间是不同 2 high_resolution_clock::now() 的时间差

sec*_*pur 14

你可以尝试这样的事情。要将整数值转换为以毫秒为单位的 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 */
}
Run Code Online (Sandbox Code Playgroud)