【问题标题】:Comparing chrono::duration with an integer将 chrono::duration 与整数进行比较
【发布时间】:2023-04-02 01:22:02
【问题描述】:

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

例如:

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'(又名 'duration') 和 'int')

任何帮助将不胜感激。

【问题讨论】:

标签: c++ chrono


【解决方案1】:

您需要告诉它12 的含义。是秒吗?毫秒?所以要么投它:

chrono::seconds(12)

或者(我最喜欢的)让它成为一个计时文字。如果你的意思是 12 秒,那么:

using namespace std::chrono_literals;
// ...

if (timeDiff > 12s) {

如果是毫秒:

if (timeDiff > 12ms) {

【讨论】:

  • 啊,好吧!简单的解决方案,但在相关文档中搜索解决方案时不知何故没有找到这个!谢谢
猜你喜欢
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2014-01-26
相关资源
最近更新 更多