std :: chrono时间点,持续时间转换和小数值

时间:2019-06-17 22:24:44

标签: c++11 chrono g++-5

说我用以下时间计时任务:

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 个答案:

没有答案