代码之家  ›  专栏  ›  技术社区  ›  Stéphane

std::计时时间点、持续时间转换和分数值

  •  0
  • Stéphane  · 技术社区  · 6 年前

    假设我按以下时间安排任务:

    auto t1 = std::chrono::high_resolution_clock::now();
    // ...do work here...
    auto t2 = std::chrono::high_resolution_clock::now();
    

    经过的时间是:

    auto elapsed = t2 - t1;
    

    duration 使用,以及如何 正确地

    如果我这样做:

    std::cout << "count=" << elapsed.count() << std::endl;
    

    ……然后我好像得到了纳秒。但如果我这样做:

    const double secs = std::chrono::duration<double>(elapsed).count();
    std::cout << "count=" << secs << std::endl;
    

    虽然这段代码适用于我正在使用的编译器,但我担心,因为我没有在转换持续时间期间指定所需的单位,所以我所做的是特定于实现的,并且可能无法在不同的编译器中按预期工作。是否有更好或更明确的方法将持续时间转换为“秒”(包括小数部分)?

    0 回复  |  直到 6 年前
    推荐文章