是否有相当于timeGetTime()的标准库?

时间:2013-02-09 00:22:20

标签: c++ stl std

我已经尝试过搜索而没有真正找到符合我要求的问题的答案,或者说得很清楚。

我正在寻找一种函数或方法来实现一个函数,该函数可以像timeGetTime()函数在windows中那样检索滴答数或毫秒数。

我正在寻找一种只使用标准C ++,没有额外的库或平台细节的解决方案(如Windows上的timeGetTime()或等效的Linux;多平台解决方案)。

我正在尝试让我的代码平台独立于库的较低级别,我只想知道是否有人可以告诉我/指出我将类似于timeGetTime()的东西放在一起的方式。

由于

更新:我不一定要寻求高性能和高精度,我只需要毫秒精度即可查看自上次检查以来已经过了多长时间。

2 个答案:

答案 0 :(得分:3)

C ++ 11添加了标题<chrono>,它提供了一种标准化的方式来读取比旧localtime更高分辨率的系统时间。然而,平台的准确性差异很大。

steady_clock课程可能对您最有用。

答案 1 :(得分:2)

您可以使用C ++ 11中添加的那么冗长的<chrono>库。

根据您的需要,它具有不同类型的时钟,system_clock是唯一可以与time_t一起使用的high_resolution_clock,而#include <iostream> #include <chrono> int main() { auto now = std::chrono::high_resolution_clock::now(); //do stuff here auto then = std::chrono::high_resolution_clock::now(); std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(then-now).count(); } 是可能最小的时钟。

时间比较简单,例如:

{{1}}