我正在尝试比较使用固定整数执行一段代码所花费的时间。
例如:
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 :: duration”和“ int”)无效的操作数
如何将timeDiff
转换为整数?
我也尝试过:
chrono::seconds s = chrono::duration_cast<chrono::seconds>(timeDiff);
但是,
对二进制表达式('chrono :: seconds'(aka 'duration')和'int')
任何帮助将不胜感激。
答案 0 :(得分:7)
您需要告诉它12
是什么意思。是几秒钟?毫秒?所以要么投下它:
chrono::seconds(12)
或者(我最喜欢的)将其设为时间字面量。如果您的意思是12秒,那么:
using namespace std::chrono_literals;
// ...
if (timeDiff > 12s) {
如果是毫秒:
if (timeDiff > 12ms) {