C++中可以使用库来计算时间,也可以使用系统函数。

  1. 使用

可以使用std::chrono::high_resolution_clock::now()函数来获取当前时间,精确到纳秒级别,然后进行计算。

示例代码:

#include <chrono>
#include <iostream>

int main() {
    auto start = std::chrono::high_resolution_clock::now(); // 获取开始时间
    // 执行代码
    auto end = std::chrono::high_resolution_clock::now(); // 获取结束时间
    auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start); // 计算耗时,精确到微秒
    std::cout << "Elapsed time: " << elapsed.count() << " microseconds." << std::endl;
    return 0;
}
  1. 使用系统函数

在Windows中,可以使用QueryPerformanceCounter函数和QueryPerformanceFrequency函数来计算时间,精确到微秒级别。

示例代码:

#include <iostream>
#include <windows.h>

int main() {
    LARGE_INTEGER freq;
    QueryPerformanceFrequency(&freq); // 获取频率
    LARGE_INTEGER start, end;
    QueryPerformanceCounter(&start); // 获取开始时间
    // 执行代码
    QueryPerformanceCounter(&end); // 获取结束时间
    double elapsed = static_cast<double>(end.QuadPart - start.QuadPart) * 1000000.0 / static_cast<double>(freq.QuadPart); // 计算耗时,精确到微秒
    std::cout << "Elapsed time: " << elapsed << " microseconds." << std::endl;
    return 0;
}

在Linux和MacOS中,可以使用gettimeofday函数来计算时间,精确到微秒级别。

示例代码:

#include <iostream>
#include <sys/time.h>

int main() {
    timeval start, end;
    gettimeofday(&start, nullptr); // 获取开始时间
    // 执行代码
    gettimeofday(&end, nullptr); // 获取结束时间
    long elapsed = (end.tv_sec - start.tv_sec) * 1000000L + (end.tv_usec - start.tv_usec); // 计算耗时,精确到微秒
    std::cout << "Elapsed time: " << elapsed << " microseconds." << std::endl;
    return 0;
}

注意:以上计算方法都只是估算时间,不保证绝对精确

c++如何计算时间精确到微秒

原文地址: http://www.cveoy.top/t/topic/cTUj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录