说我用以下时间计时任务:
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;
...然后看来我得到了我希望使用的秒和小数秒。
尽管此代码可与我使用的编译器一起使用,但我担心由于在持续时间转换过程中未指定所需的单位,因此我所做的是特定于实现的,可能无法按预期工作使用不同的编译器。是否有更好或更明确的方法将持续时间转换为“秒”(包括小数部分)?