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

Ada*_*oss 1 c++ stl std

我尝试过搜索,但没有真正找到符合我要求或解释得足够清楚的问题的答案。

我正在寻找一个函数或一种实现函数的方法,该函数可以像 timeGetTime() 函数在 Windows 中一样检索刻度数或毫秒数。

我正在寻找一种仅使用标准 C++ 的解决方案,无需额外的库或平台细节(例如 Windows 或 Linux 上的 timeGetTime() 等价物;多平台解决方案)。

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

谢谢

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

Rap*_*ptz 5

您可以使用 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();
}
Run Code Online (Sandbox Code Playgroud)