将 chrono::d uration 与整数进行比较



我正在尝试比较执行一段代码与固定整数所花费的时间。

例如:

auto startProcessingTime = chrono::high_resolution_clock::now();
chrono::duration<int> timeDiff = (chrono::duration_cast<chrono::seconds>(chrono::high_resolution_clock::now() - startProcessingTime));
if (timeDiff > 12) {
// DO SOMETHING
continue;
}

但是在运行它时,我收到以下错误:

二进制表达式的操作数无效("chrono::d uration"和"int"(

如何将timeDiff转换为整数?

我也尝试过:

chrono::seconds s = chrono::duration_cast<chrono::seconds>(timeDiff);

然而

二进制表达式的操作数无效("chrono::seconds"(又名 "持续时间"(和"int"(

任何帮助将不胜感激。

你需要告诉它12是什么意思。是秒吗?毫秒?所以要么投它:

chrono::seconds(12)

或者(我最喜欢的(让它成为时间文字。如果您的意思是 12 秒,那么:

using namespace std::chrono_literals;
// ...
if (timeDiff > 12s) {

如果是毫秒:

if (timeDiff > 12ms) {

最新更新