我已经尝试过搜索而没有真正找到符合我要求的问题的答案,或者说得很清楚。
我正在寻找一种函数或方法来实现一个函数,该函数可以像timeGetTime()函数在windows中那样检索滴答数或毫秒数。
我正在寻找一种只使用标准C ++,没有额外的库或平台细节的解决方案(如Windows上的timeGetTime()或等效的Linux;多平台解决方案)。
我正在尝试让我的代码平台独立于库的较低级别,我只想知道是否有人可以告诉我/指出我将类似于timeGetTime()的东西放在一起的方式。
由于
更新:我不一定要寻求高性能和高精度,我只需要毫秒精度即可查看自上次检查以来已经过了多长时间。
答案 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}}